对于给定的字符串,我想为给定的单词/子字符串添加下划线。
例如,如果我有一个字符串Q1)Sun is a __ .
,我想将其设为Q1)Sun is a _star_ .
(其中_表示下划线的开头和结尾)。
我使用了以下代码,但它强调了TextView
。
txtview.setPaintFlags(textview.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
我的代码:
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int er) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
txtview.setText(sen1.replace("__",s.toString());
}
}
那么我将在编辑文本中编写,它将在文本视图中反映并将“__”替换为编辑文本中的字符串。 唯一的需要是更改的字符串应该是下划线,而不是整个文本视图。
答案 0 :(得分:0)
答案 1 :(得分:0)
您当前的代码正在替换子字符串而不是单词。你可能不希望这样。
例如,如果将其应用于Mr. Wong is a starring character
之类的字符串,则会为子字符串“star”加下划线。
如果你想这样做,你可以使用:
textview.setText(Html.fromHtml(
yourString.replaceAll("star", "<u>star</u>")));
如果您想要替换确切的单词,可以使用:
textview.setText(Html.fromHtml(
yourString.replaceAll("\\bstar\\b", "<u>star</u>")));