databinding使用string format
<string name="Generic_Text">My Name is %s</string>
android:text= "@{@string/Generic_Text(Profile.name)}"
多个字符串拼接的:
<string name="generic_name">字符串1: %1$s,字符串2:%2$s</string>
android:text= "@{@string/generic_name(str1, str2)}"
+ 号方式
android:text="@{`字符串:` + str}"/>
使用
使用Html标签
<data>
<import type="android.text.Html"/>
</data>
...
android:text="@{Html.fromHtml(@string/sxx_user_rank(user.readTimes))}"
使用过程中当两个font标签嵌套html内层标签不起作用。
<![CDATA[<font color=\'#FF9900\'>作品阅读次数<font color=\'#333333\'> %1$s </font>次</font>]]>
普通的
android:text='@{@string/user_name+bean.name}'
这里的引号需要使用单引号
注意
特别需要注意的是,字符串的拼接不要用直接的文字表示,比如
android:text='@{"user的name:"+bean.name}'
这种容易出问题。
并且,DataBinding报错并不会指向错误源,事后很难排除。
故,需采用 @string/xxxx的形式进行字符串的拼接