Intereting Posts
   

Android getResources()。getStringArray()variables

我有一个xml文件,其中有字符串和字符串数组。 我有一个class级,我点击一个listitem,而在另一个class级我列出其他项目。 在xml中有一些字符串,其名称是被点击的项目修改名称,值是字符串数组名称。 我find了一个解决方案,如何将一个variables添加到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(this, R.layout.list_item, albums)); TextView t = (TextView) findViewById(R.id.albumName); t.setText(setRes); 

TextView用于检查variables。 albumSearch给出了“modifiedartistpicked_code”,这很好。 getRes给出了xml(“something_array”)的值,setRes给出了它的实际id号(getStringArray需要的值)。 getRes2与getRes相同,它只是检查它是否正常工作。 当我注释掉接下来的两行,String albums []和setListAdapter时,程序可以工作,但是它不会列出项目。

xml文件:

    code1 example code2 example   item1 item2 item3   item1 item2 item3  code1_array code2_array  

我希望我能写出我想做的事情,问题是什么:)

更新:

@Marc Bernstein:因为我不知道它是code1_array。 首先我做了很多,如果选择的项目是x,那么我读了R.array.x_array等…

但是我遇到了问题,在xml中有字符串名称的大写字母。 这就是为什么我讨厌xml,问题总是在那里:)这个xml只是一个例子,原来是更大的,这就是没有人能够提供帮助的原因。 下次我会更加谨慎。

而且我现在变得更加简单,因为你说它太复杂了。

罪魁祸首是最有可能的

 String[] albums = getResources().getStringArray(getRes2); 

而不是做

 int getRes2 = getResources().getIdentifier(setRes, "array", getPackageName()); String[] albums = getResources().getStringArray(getRes2); 

为什么不用

 String[] albums = getResources().getStringArray(R.array.code1_array); 

无论如何,从你发布的内容来看,我认为你的strings.xml文件中并不存在“数组”标识符。 我看到了code1_array和code2_array。

这是因为它试图动态确定它想要使用的数组。 String[] albums = getResources().getStringArray(的id String[] albums = getResources().getStringArray( R.array.code1_array ); 例如,在用户输入,一些微调器/编辑文本框中给出。 这不是使用数据库,只是使用xml文件中的一些字符串。