R.string; 从动态密钥名称中获取字符串

Gen*_*ari 13 resources android getstring

可能重复:
动态资源加载Android

在Android中,我可以从资源中加载一个字符串String s = getString(R.string.keyName).但是我的数据库中有一个类别列表,每个类别都有一个名称.如何获取该类别名称,然后根据它添加适当的字符串资源,以便它可以用于本地化?

基本上,我需要有keyName动力; 我自己的String变量.这可能吗?谢谢.

Stu*_*uck 11

由于您的资源不能动态,您可以使用如下的switch语句:

String name = "";
switch (row.getNameKey()) {
case keyName1:
    name = getString(R.string.keyName1);
    break;
case keyName2:
    name = ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是getIdentifier方法:http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String,%20java.lang.String,%20java.lang.字符串29%

并查看:Android:使用变量名访问string.xml