如何用dataBinding用空格写一个字符串

Lew*_*wis 5 android

我想让应用程序向我显示像"24女孩"这样的字符串; 但是当我使用dataBinding时,字符串中的空格无法显示,字符串更改为"24girls".

这是我的代码: 在此输入图像描述

Reh*_*han 28

我建议你使用复数形式.在你的strings.xml添加中:

<plurals name="scores">
    <item quantity="one">%d Girl</item>
    <item quantity="other">%d Girls</item>
</plurals>
Run Code Online (Sandbox Code Playgroud)

并在您的布局文件中

android:text="@{@plurals/scores(setScore.score, setScore.score)}"
Run Code Online (Sandbox Code Playgroud)

第一个setScore.score用于决定应该使用哪个字符串plurals.第二个setScore.score%d我们提到的论点plurals.


wal*_*kmn 6

您可以在布局中进行此操作:

android:text="@{setScore.score + ' ' + @string/score_string}"
Run Code Online (Sandbox Code Playgroud)

但至于我,更好的变体是在viewmodel中创建一个特殊的getter,它将返回string.

例如:

String getScoreFormatted() {
    return String.format(getString(R.string.score_string), score);
}
Run Code Online (Sandbox Code Playgroud)

并在您的布局中使用它:

android:text="@{setScore.scoreFormatted}"
Run Code Online (Sandbox Code Playgroud)

为什么更好?因为您可以通过方法javakotlin方法编写任何逻辑,您的布局将更清晰.


小智 5

创建一个字符串资源:

<string name="score_string">%1d girls</string>
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

android:text="@{String.format(@string/score_string, setScore.score)}"
Run Code Online (Sandbox Code Playgroud)