Android:静态地在TextView中强调动态文本

Bry*_*eld 6 android underline

我想使TextView完全加下划线,但我不能使用文本资源和<u>标记,因为它是动态文本.

相关:我可以在Android布局中为文本加下划线吗?

到目前为止,我知道这样做的唯一方法是在运行时.这真的是唯一的方法吗?有没有办法在XML文件中做到这一点?

pet*_*er3 18

最简单的解决方案可能是创建一个派生自TextView的自定义UnderLineTextView组件,覆盖setText()并将整个文本设置为带下划线的内容,如下所示(从上面提到的链接下划线代码):

@Override
public void setText(CharSequence text, BufferType type) {
    // code to check text for null omitted
    SpannableString content = new SpannableString(text);
    content.setSpan(new UnderlineSpan(), 0, text.length(), 0);
    super.setText(content, BufferType.SPANNABLE);

}
Run Code Online (Sandbox Code Playgroud)

这只是在布局中使用新组件并像往常一样设置文本的问题.其余部分自动处理.

有关自定义组件的更多信息:http: //developer.android.com/guide/topics/ui/custom-components.html


Hen*_*tle 14

您可以在Html.fromHtml(字符串源)上为文本加下划线

例:

textView.setText(Html.fromHtml("this is <u>underlined</u> text"));
Run Code Online (Sandbox Code Playgroud)