Почему HtmlCompat.from Html () не обрабатывает текст? - PullRequest
1 голос
/ 21 марта 2020

Я пытаюсь стилизовать часть String перед установкой TextView. Но когда я запускаю приложение, к тексту не применяются стили.

Я определил строковый ресурс в строках. xml как

<string name="amount_added_notice"> <![CDATA[Amount of <b><font color=\'#333333\'>\u20B9%1$s</font></b> added to %2$s Account]]> </string>

В XML, я использую DataBinding для установки текста

android:text="@{viewModel.firstText}"

Переменная firstText определяется в ViewModel как

val firstText by lazy { ObservableField<String>() }

А затем string назначается следующим образом:

firstText.set(  HtmlCompat.fromHtml(context.getString(R.string.amount_added_notice, "500", "John's"), FROM_HTML_MODE_LEGACY)))

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 21 марта 2020
val firstText by lazy { ObservableField<String>() }

Попробуйте изменить это значение на:

val firstText by lazy { ObservableField<CharSequence>() }

и посмотрите, поможет ли это. Вывод HtmlCompat.fromHtml() - это CharSequence, в частности, какой-то Spannable, который содержит правила форматирования. Я думаю, что это превращается в простой String.

1 голос
/ 21 марта 2020

Попробуйте удалить одинарные кавычки и обратную косую черту вокруг вашего шестнадцатеричного цвета. Вот так

<font color=#333333>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...