我从我的意图附加组件(KI1,KI2等)
接收字符串数组名称我希望变量替换它们,而不是硬编码字符串数组名称(如R.array.KI1)。
strdata = receiverIntent.getExtras().getString("intentExtra");
String[] pointDetails = getResources().getStringArray**(R.array.KI1);**
资源文件
<resources>
<string-array name="KI1">
<item>Categories Text KI1</item>
<item>Unitary Channel Text KI1</item>
<item>Localization Text KI1</item>
<item>Action Text KI1</item>
<item>Indication Text KI1</item>
<item>Point location Text KI1</item>
<item>KI1.png</item>
</string-array>
<string-array name="KI2">
<item>Categories Text KI2</item>
<item>Unitary Channel Text KI2</item>
<item>Localization Text KI2</item>
<item>Action Text KI2</item>
<item>Indication Text KI2</item>
<item>Point location Text KI2</item>
<item>KI2.png</item>
</string-array>
</resources>
为什么不可能做这样的事情:
String[] pointDetails = getResources().getStringArray("R.array." + strdata);
我希望变量的输出如下:R.array.strdata
答案 0 :(得分:0)
因为getStringArray();接受int值,但是你将字符串传递给它。
为什么不使用switch case或exp ...如
String[] pointDetails ;
switch(strdata)
{
case "KI1":
pointDetails = getResources().getStringArray(R.array.KI1);
break;
case "KI2":
pointDetails = getResources().getStringArray(R.array.KI2);
break;
}