引用XML中字符串资源的INTEGER值



是否可以不引用表示的字符串,而是引用xml中资源的整数键?

<string name="first_string">First! :-D</string>
<string name="second_string">Second :(</string>
<integer-array name="something">
    <item>@string/first_string</item>
    <item>@string/second_string</item>
</integer-array>

例如,这不起作用,因为@string/first_string被解析为First! :-D,而不是它的资源密钥(例如0x7f0c0010)。有什么方法可以访问它吗?

在java中,您在项目的生成R.class中有整数值。

例如:

int value = R.string.first_string;

在XML中,不可能得到它。

有一件事与将键放入xml数组有类似的效果,那就是用obtainTypedArray而不是getIntArraygetStringArray在java中访问它。

typedArray = getResources().obtainTypedArray(R.array.something);
int id = typedArray.getResourceId(0, -1); // 1st param: position, 2nd: default value
if (id == R.string.first_string);  // true
if (id == R.string.second_string); // false

希望这能帮助到别人!对我来说(op),这似乎一点帮助都没有,因为我不能以这种方式访问存储的首选项,这就是为什么如果可能的话,我需要直接在XML中使用它。

最新更新