通过字符串调用资源?

时间:2011-05-14 20:16:13

标签: android string resources arrays

这是设置。我有一个微调器,并且微调器中的每个项都与它们自己的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

有没有办法正确地做到这一点?

- Edit-- @EboMike

你的回答让我狩猎并遇到了我正在使用的这个:

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

1 个答案:

答案 0 :(得分:2)

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

如果您真的坚持使用基于字符串的方法,请使用Resources.getIdentifier()。如果你只做一次,这在技术上并不是什么大不了的事。