2015-08-29 4 views
1

Я хочу покрасить текст между «и». Например -Выделите промежуточный текст в Android

< тело 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. Текст будет дано затем пользователем и может иметь много "

ответ

0

Давайте предположим, что startPos, endPos является postition из двух " Попробуйте следующий код:..?

  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); 
      } 
+0

Как я могу получить endPos et_note в моем коде есть edittext, и у него будет много. – FadedCoder

+0

Вы можете попробовать некоторые методы, такие как 'indexOf (String str), indexOf (String str, int fromIndex), lastIndexOf (String str), lastIndexOf (String str, int fromIndex)' ... – BNK

Смежные вопросы