В выражениях привязки данных Android можно ссылаться на строковый ресурс следующим образом:
@{@string/message}
Это переводится в код, который выглядит следующим образом:
getRoot().getResources().getString(R.string.message)
Обратите внимание, этовыборка строкового ресурса в виде String , так что охватывающая информация теряется. Например, если бы у меня было:
<b>Important:</b> Remember to...
, шрифт потерян. Если кто-то использует getText
для извлечения той же строки, форматирование остается неизменным.
Существует ли синтаксис или трюк, которые заставят компилятор привязки данных генерировать код для извлечения строкового ресурса в виде CharSequence
String
?
(То, что я пытаюсь сделать, это передать CharSequence
в <include>
-ый макет, используя привязку данных. Целевое поле - CharSequence
, но данныекод привязки по-прежнему выбирает ресурс как String
. Кроме того, поскольку целью является подкласс ViewDataBinding
, а не View
, пользовательский BindingAdapter
не представляется возможным.)