Ruslan Chepizhko Asked:2020-09-27 15:17:03 +0000 UTC2020-09-27 15:17:03 +0000 UTC 2020-09-27 15:17:03 +0000 UTC 输出时 text.setText(R.string.slovo + " " + intValue); - 输出资源int地址 772 输出时text.setText(R.string.slovo + " " + intValue);显示资源int的地址,需要显示String资源的加号intValue。intValue动态变化,因此将其驱动到资源中是没有意义的。 android 2 个回答 Voted Best Answer elik 2020-09-27T15:18:47Z2020-09-27T15:18:47Z 没错,你必须通过 getResources. Example来获取资源 getResources().getString(R.string.slovo ) andrei_zaitcev 2020-09-28T22:21:58Z2020-09-28T22:21:58Z 除了@elik 的回答,我想指出Android API 提供了一种特殊的方法来格式化资源Resources.html#getString(int, java.lang.Object...)。它有它的缺陷,但总的来说它工作起来非常简单并且使代码更干净。 例如, <string name="my_string_to_format">Hello, %s!</string> text.setText(getString(R.string.my_string_to_format, "world")); 该词world将自动替换为 %s。这对于本地化尤其重要,因为 在不同的语言中,您要添加的字符串/数字可能位于句子的不同部分! 您可以在一行中添加任意数量的参数。例如, <string name="my_string_to_format">I have %1$d %2$s</string> text.setText(getString(R.string.my_string_to_format, 10, "frogs"));
没错,你必须通过
getResources.Example来获取资源除了@elik 的回答,我想指出Android API 提供了一种特殊的方法来格式化资源Resources.html#getString(int, java.lang.Object...)。它有它的缺陷,但总的来说它工作起来非常简单并且使代码更干净。
例如,
该词
world将自动替换为 %s。这对于本地化尤其重要,因为 在不同的语言中,您要添加的字符串/数字可能位于句子的不同部分!您可以在一行中添加任意数量的参数。例如,