可以在 TextView 文本中为单词加下划线
Posted
技术标签:
【中文标题】可以在 TextView 文本中为单词加下划线【英文标题】:Can underline words in TextView text 【发布时间】:2012-01-23 09:35:20 【问题描述】:在 android 中是否有可能在 Java 代码中为 TextView 提供一些带有 setText(text) 函数的文本,这些文本带有基本标签,如和 以使标记的单词加下划线?
【问题讨论】:
This will help you, 这是您可以underline
textview 文本和italic
的示例。
How to display html in TextView?的可能重复
【参考方案1】:
是的,你可以,使用 Html.fromhtml() 方法:
textView.setText(Html.fromHtml("this is <u>underlined</u> text"));
【讨论】:
好吧,我遇到了一个问题。这是不起作用的代码行。textView.setText(Html.fromHtml(getResources().getString(R.string.have_activation_code)));
<string name="have_activation_code"><u>I have activation code</u></string>
@mahbub.kuet 您必须将 HTML 字符串放入 。所以 Html.fromHtml
现已弃用【参考方案2】:
定义一个字符串为:
<resources>
<string name="your_string">This is an <u>underline</u> text demo for TextView.</string>
</resources>
【讨论】:
是的,但是您可以通过使用 Html.fromHtml() 将其用于动态字符串,请查看上面的答案 ***.com/a/8558246/379693 @PareshMayani 但请注意,Html.fromHtml()
不支持某些标签。看看这个***.com/a/3150456/1987045【参考方案3】:
您可以使用 SpannableString 类中的 UnderlineSpan:
SpannableString content = new SpannableString(<your text>);
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
那就用textView.setText(content);
【讨论】:
【参考方案4】:tobeunderlined= <u>some text here which is to be underlined</u>
textView.setText(Html.fromHtml("some string"+tobeunderlined+"somestring"));
【讨论】:
【参考方案5】:最简单的方法
TextView tv = findViewById(R.id.tv);
tv.setText("some text");
setUnderLineText(tv, "some");
还支持 TextView 子类,例如 EditText、Button、Checkbox
public void setUnderLineText(TextView tv, String textToUnderLine)
String tvt = tv.getText().toString();
int ofe = tvt.indexOf(textToUnderLine, 0);
UnderlineSpan underlineSpan = new UnderlineSpan();
SpannableString wordToSpan = new SpannableString(tv.getText());
for (int ofs = 0; ofs < tvt.length() && ofe != -1; ofs = ofe + 1)
ofe = tvt.indexOf(textToUnderLine, ofs);
if (ofe == -1)
break;
else
wordToSpan.setSpan(underlineSpan, ofe, ofe + textToUnderLine.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(wordToSpan, TextView.BufferType.SPANNABLE);
如果你愿意
- 可点击的下划线文字?
- 在 TextView 的多个部分下划线?
然后Check This Answer
【讨论】:
以上是关于可以在 TextView 文本中为单词加下划线的主要内容,如果未能解决你的问题,请参考以下文章