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

时间:2016-05-19 06:45:39

标签: android

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

这是我的代码: enter image description here

4 个答案:

答案 0 :(得分:22)

我建议您使用plurals。 在strings.xml添加此内容:

<plurals name="scores">
    <item quantity="one">%d Girl</item>
    <item quantity="other">%d Girls</item>
</plurals>

并在您的布局文件中

android:text="@{@plurals/scores(setScore.score, setScore.score)}"

第一个setScore.score用于决定plurals中应使用哪个字符串。 第二个setScore.score用于我们在%d中提到的参数plurals

答案 1 :(得分:6)

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

android:text="@{setScore.score + ' ' + @string/score_string}"

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

例如:

String getScoreFormatted() {
    return String.format(getString(R.string.score_string), score);
}

并在您的布局中使用它:

android:text="@{setScore.scoreFormatted}"

为什么更好?因为您可以在方法中按javakotlin对任何逻辑进行编码,所以您的布局会更清晰。

答案 2 :(得分:3)

创建字符串资源:

<string name="score_string">%1d girls</string>

然后像这样使用它:

android:text="@{String.format(@string/score_string, setScore.score)}"

答案 3 :(得分:1)

只需在得分和得分字符串

之间添加空格+' '+