在Android中突出显示中间文本



我想给"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);
            } 

最新更新