我有一个xml文件,其中有字符串和字符串数组.我有一个班级,我点击一个listitem,而在另一个班级我列出其他项目.在xml中有一些字符串,其名称是被点击的项目修改名称,值是字符串数组名称.我找到了一个解决方案,如何将一个变量添加到getResources(9.getStringArray()但它不起作用.程序启动,但当我点击任何listitem时,我的活动就停止工作.我的类文件:
String artistpicked = extras.getString("artist");
String[] firstW = artistpicked.split(" ");
firstW[0] = firstW[0].trim();
String albumSearch = firstW[0] + "_code";
int getRes = getResources().getIdentifier(albumSearch, "string", getPackageName());
String setRes = String.valueOf(getRes);
int getRes2 = getResources().getIdentifier(setRes, "array", getPackageName());
String[] albums = getResources().getStringArray(getRes2);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, albums));
TextView t = (TextView) findViewById(R.id.albumName);
t.setText(setRes);
Run Code Online (Sandbox Code Playgroud)
TextView用于检查变量.albumSearch给出了"modifiedartistpicked_code",这很好.getRes给出了xml("something_array")的值,setRes给出了它的实际id号(getStringArray要求的值).getRes2与getRes相同,只是在那里检查它是否正常工作.当我注释掉接下来的两行,String albums []和setListAdapter时,程序可以正常工作,但它不会列出项目.
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="artists_array">
<item>code1 example</item>
<item>code2 example</item>
</string-array>
<string-array name="code1_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="code2_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string name="code1_code">code1_array</string>
<string name="code2_code">code2_array</string> …
Run Code Online (Sandbox Code Playgroud)