Android 通过字符串调用资源?

Android 通过字符串调用资源?,android,string,resources,arrays,Android,String,Resources,Arrays,这是设置。我有一个微调器,微调器中的每个项目都与它们自己的StringArray关联。我想简化在微调器中选择项时加载StringArray的过程,而无需为每个项使用一组if语句 StringArray与微调器项的文本具有相同的名称 画出来的样子是这样的: String cat = parent.getItemAtPosition(pos).toString(); //Selected Spinner item (Category) ... String catStringArray = "R

这是设置。我有一个微调器,微调器中的每个项目都与它们自己的StringArray关联。我想简化在微调器中选择项时加载StringArray的过程,而无需为每个项使用一组if语句

StringArray与微调器项的文本具有相同的名称

画出来的样子是这样的:

String cat = parent.getItemAtPosition(pos).toString(); //Selected Spinner item (Category)

...

String catStringArray = "R.array." + cat;
listdata = getResources().getStringArray(catArray);  //Get the StringArray
有没有正确的方法

--编辑-- @埃博迈克

你的回答让我陷入了困境,我现在正在使用:

Class res = R.array.class;
Field field = res.getField(selectedCategory);
int saId = field.getInt(null);
String[] myList = getResources().getStringArray(saId);

这不是一个好办法。很慢。最好有一个包含所有R.string ID或类似内容的内部整数数组


如果您确实坚持使用基于字符串的方法,请使用
Resources.getIdentifier()
。如果只做一次,从技术上讲,这没什么大不了的。

可能重复商定的好问题。向上投票-当然有些情况下需要动态资源,使用getIdentifier也可以减少维护。请记住检查返回值是否为0。