答案 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}"
为什么更好?因为您可以在方法中按java
或kotlin
对任何逻辑进行编码,所以您的布局会更清晰。
答案 2 :(得分:3)
创建字符串资源:
<string name="score_string">%1d girls</string>
然后像这样使用它:
android:text="@{String.format(@string/score_string, setScore.score)}"
答案 3 :(得分:1)
只需在得分和得分字符串
之间添加空格+' '+