这是设置。我有一个微调器,并且微调器中的每个项都与它们自己的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);
答案 0 :(得分:2)
这不是一个好方法。这很慢。最好有一个内部整数数组,其中包含所有R.string ID或类似内容。
如果您真的坚持使用基于字符串的方法,请使用Resources.getIdentifier()
。如果你只做一次,这在技术上并不是什么大不了的事。