从变量中引用Android XML资源文件

3

我有一个以下格式的错误代码XML文件:

<resources>
    <string name ="e1001">"Description of error 1001"</string>
    <string name ="e1002">"Description of error 1002"</string>
...
</resources>

通常可以按照惯例访问这些内容,即R.string.e1001

是否可以通过引用中使用变量来引用,还是必须使用Xpath?

显然这样行不通,但可以类似于以下方式:

String s = getErrorCode(); //returns a value, i.e "e1001"
showAlert(R.string.+s);

1
String s = context.getResources().getString(R.string.s); 字符串 s = context.getResources().getString(R.string.s); - DDsix
2个回答

0
在一个Activity/Fragment中,您可以通过以下方式获取资源的String值:
//Activity
String s = getString(R.string.s);

//Fragment
String s = getActivity().getString(R.string.s);

你的问题在于不知道R.string.s实际上返回一个int。基本上,它是Android用来确定应用程序中字符串位置的引用。

getString()是Context类中的一个方法-请参阅docs以获取更多信息

编辑:

根据您的评论,您将要尝试以下操作:

String resourceName = getErrorCode();
String alert = getResources().getIdentifier(resourceName, "string", getPackageName());
showAlert(alert);

谢谢您的回复,Ed。从资源文件中获取值不是我的问题,我正在尝试根据变量的内容动态选择资源。 - tallpaul

0
尝试一下这个Activity。
String s = getString(R.string.urresourcename);

尝试使用这个片段。
String s = getActivity().getString(R.string.urresourcename);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接