Скорее всего, его там никогда не было.
В строковом ресурсе распознанные встроенные элементы HTML, такие как <u>
, интерпретируются как часть ресурса. Если вы позвоните getString()
, эти HTML-элементы будут удалены. Если вы наберете getText()
на Resources
, вы получите CharSequence
, который содержит разметку (например, UnderlineSpan
).
Поскольку вы используете String
везде, ваши HTML-элементы будут игнорироваться.
Я не совсем уверен, почему вы настраиваете привязку данных таким образом. Если вы используете:
android:text="@string/underlined_text"
ты получишь то, что хочешь, и быстрее. В конце концов, StringUtils
ничего не делает.
Но, если вы действительно уверены, что хотите использовать привязку данных:
- Вызовите
getText()
на Resources
с вашим идентификатором ресурса строки
- Передайте это
CharSequence
, чтобы перейти к выражению привязки данных
Кроме того, вы можете обернуть содержимое вашего строкового ресурса в CDATA
, чтобы сохранить исходный HTML-код без изменений. Однако в какой-то момент вам нужно будет использовать Html.fromHtml()
или что-то подобное, чтобы получить CharSequence
с примененным форматированием.