Как установить цвет на веревке

Я хочу установить цвет только для строки «читать дальше»:

    holder.Title.setText(current.getTitle());
    holder.Description.setText(start+"...."+"read more");
    holder.Date.setText(current.getPubDate());

Я пробовал использовать html.fromhtml, но он у меня не работает !!!

используйте holder.Description.setTextColor(), чтобы установить цвет текста.

Crammeur 26.07.2018 18:25

@crammeur вопрос задал сделать красный цвет только в подстроке держателя.

Lino 26.07.2018 18:27

@Lino, спасибо, что сказал мне это, я не вижу :)

Crammeur 26.07.2018 18:29

Возможный дубликат Android: раскрашивание части строки с помощью TextView.setText ()?

Ramees Thattarath 26.07.2018 18:39

может вам поможет github.com/milaptank/SpannableTextView

MilapTank 27.07.2018 06:15
0
5
218
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Попробуйте как следовать

String textFirstPart = start + "....";
String textSecondPart = "read more";
String text = textFirstPart + textSecondPart;
Spannable spannable = new SpannableString(text);
spannable.setSpan(new ForegroundColorSpan(Color.RED), textFirstPart.length(),
                            (textFirstPart + textSecondPart).length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.Description.setText(spannable, TextView.BufferType.SPANNABLE);

Начиная с Android N,

метод Html.fromHtml (htmlText) устарел, и вы должны использовать

Html.fromHtml (htmlText, РЕЖИМ) вместо этого, поэтому используйте следующее условие,

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
           holder.setText(Html.fromHtml(sourceString,Html.FROM_HTML_MODE_LEGACY);
        } else {
           holder.setText(Html.fromHtml(sourceString);
        }

Справка: https://developer.android.com/reference/android/text/Html#FROM_HTML_MODE_COMPACT

Ну вот

 SpannableString styledString = new SpannableString("read more");
 // change text color
 styledString.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 8, 0);
 // underline text
 styledString.setSpan(new UnderlineSpan(), 0, 8, 0);

Узнать больше здесь

Другие вопросы по теме