android 寻找更好的文本合成方法

axr492tv  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(136)

我正在学习Jetpack Compose,并为我的孩子制作了一个闪存卡应用程序。一切正常,现在我正尝试重构它,以遵循最佳实践。它指出,你不应该使用硬编码文本,并把你的字符串在res/values/strings.xml文件。我已经这样做了我所有的字符串,但这一个似乎混乱和过于复杂。有更好的方法来做到这一点吗?

text = "You scored $answersCorrect out of 10 in $totalTime seconds" //Original String

text = "${stringResource(R.string.You_scored)} $answersCorrect ${stringResource(
            R.string.Out_of)} $totalTime ${stringResource(R.string.Seconds)}"

<string name="You_scored">You scored </string>
<string name="Out_of"> out of 10 in</string>
<string name="Seconds"> seconds</string>

它们都能工作,但我觉得有更好的方法来实现第二个示例。

nvbavucw

nvbavucw1#

您不需要将文本拆分为3个字符串资源,只需定义要传入字符串res的参数,并在获取资源时将其传入即可
在XML中

<string name="your_string_id">You scored %1$d out of 10 in %2$d seconds</string>

作曲时

stringResource(R.string.your_string_id, answersCorrect, totalTime)

以上示例假定answersCorrect和totalTime是数值,如果要传递字符串,请使用%1$s,而不是%2$s

相关问题