我想给"one_answers"之间的文字上色。例如-
<
body bgcolor="#000000" >
(我不能在问题中给它们上色,所以我只是把它们加粗)
我正在使用以下代码,但它不能正常工作-
if (text.contains(""")) {
String syntaxText = """;
SparseIntArray array = new SparseIntArray();
int ofe = text.indexOf(syntaxText, 0);
for (int ofs = 0; ofs < text.length() && ofe != -1; ofs = ofe + 1) {
ofe = text.indexOf(syntaxText, ofs);
if (ofe == -1) {
break;
} else {
for (int i = 0; i < text.length(); i=i+2) {
array.put(i, ofe);
}
}
}
int size = array.size();
Spannable WordtoSpan = new SpannableString(et_note.getText());
for (int i = 0; i < size; i=i++) {
WordtoSpan.setSpan(new ForegroundColorSpan(0xFF00FF00), array.get(i), array.get(i+1), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
et_note.setText(WordtoSpan, TextView.BufferType.SPANNABLE);
}
虽然,我没有期望上面的代码工作正常,因为我有点困惑。
谢谢你的帮助。
EDIT -et_note
在我的代码是一个EditText。文本将由用户提供,并且可能有多个
设startPos, endPos
为两个"
的位置。试试下面的代码:
if (startPos != -1){
Spannable spannable = new SpannableString(textValue);
ColorStateList blueColor = new ColorStateList(new int[][] { new int[] {}}, new int[] { Color.BLUE });
TextAppearanceSpan highlightSpan = new TextAppearanceSpan(null, Typeface.BOLD, -1, blueColor, null);
spannable.setSpan(highlightSpan, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannable);
}
else{
textView.setText(textValue);
}