从变量引用Android XML资源文件

时间:2015-05-26 09:46:40

标签: android

我有一个错误代码的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);

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

  

尝试使用此活动

String s = getString(R.string.urresourcename);
  

尝试使用片段

String s = getActivity().getString(R.string.urresourcename);