在EditText中为某些单词添加波浪红色下划线

4

我正在制作一个代码编辑器,尝试在用户编写代码时动态添加红色波浪线以标识错误。我尝试使用underlineSpan,但我不知道如何使它成为波浪线。使用.setColor()更改颜色似乎也不起作用。是否有一个可以帮助我的Span,或者有没有一种方法可以通过Paint实现?


1
我通过编写自定义跨度(span)来实现这一点,可以在此处查看解决方案https://dev59.com/uIXca4cB1Zd3GeqPMbeM#27270036。 - Iftah
谢谢你的回答,我稍后会尝试实现并查看是否有效。 - Sknictik
1个回答

0
你可以使用TextPaint
TextPaint tp = new TextPaint();
tp.linkColor = Color.BLACK;  //you can use your color using Color.parseColor("#123456");   
UnderlineSpan us = new UnderlineSpan();
us.updateDrawState(tp);
SpannableString sp = new SpannableString("Welcome to android");
sp.setSpan(us, 11, 18, 0); // UnderlineSpan Object, Start position, End position, Flag.
et.setText(sp);

这对我有效。希望能对你有所帮助。


谢谢您的回答,不幸的是这对我并没有改变下划线的颜色。 - Sknictik
你能给我展示一下你尝试使用UnderlineSpan的代码吗? - Gunaseelan
Spannable span = new SpannableString(codeField.getText()); TextPaint tp = new TextPaint(); tp.linkColor = Color.parseColor("#FF0000"); UnderlineSpan undrlspan = new UnderlineSpan(); undrlspan.updateDrawState(tp); span.setSpan(undrlspan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); codeField.setText(span);抱歉,这里的格式可能有些混乱。这是第一次在这里提问。其中codeField是包含用户代码的EditText。 - Sknictik
2
我已经检查过了,textPaint的颜色已经变成了红色,但是它对下划线本身没有影响。 - Sknictik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接