我想让应用程序向我显示像"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
.
您可以在布局中进行此操作:
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)
为什么更好?因为您可以通过方法java
或kotlin
方法编写任何逻辑,您的布局将更清晰.
小智 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)
归档时间: |
|
查看次数: |
2997 次 |
最近记录: |