Форматирование EditText и TextView с помощью SpannableStringBuilder - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть TextView, который отображает тексты, полученные из БД, и некоторые части текста помечены как комментарии.

Вот пример .....

// CREATE A VARIABLE AT THE CLASS LIKE THIS...
private static int delay = 4000; //4Secs

/*NOW THE DELAY METHOD*/
new Handler().postDelayed(new Runnable() {

    @Override
    public void run() {
        // DECLARE ACTIONS TO BE DELAYED HERE...
    }
}, delay);

Теперь я хочувсе однострочные и многострочные тексты комментариев имеют разный textColor.Как мне это сделать?

1 Ответ

0 голосов
/ 27 апреля 2019

Если вы отформатируете строку с помощью свойства font-color html, то передайте ее методу Html.fromHtml (ваш текст здесь)

String text = "<font color=#cc0029>First Color</font> <font color=#ffcc00>Second Color</font>";
yourtextview.setText(Html.fromHtml(text));

или Вы можете печатать строки с несколькими цветами без HTML как:

SpannableStringBuilder builder = new SpannableStringBuilder();

SpannableString str1= new SpannableString("Text1");
str1.setSpan(new ForegroundColorSpan(Color.RED), 0, str1.length(), 0);
builder.append(str1);

SpannableString str2= new SpannableString("Text2");
str2.setSpan(new ForegroundColorSpan(Color.GREEN), 0, str2.length(), 0);
builder.append(str2);

TextView tv = (TextView) view.findViewById(android.R.id.text1);
tv.setText( builder, TextView.BufferType.SPANNABLE);
...