我的Android项目中的文件string.xml中有多个字符串数组。
<string-array name="SS">
<item>a</item>
<item>b</item>
<item>c</item>
</string-array>
<string-array name="SV">
<item>d</item>
<item>e</item>
<item>f</item>
</string-array>
在我的活动中,我收到字符串
的值Bundle extras = getIntent().getExtras();
if(extras != null){
mData = (HashMap<String, Object>) extras.get("data");
this.id = (Integer) this.mData.get("id");
this.name = (String) this.mData.get("name");
}
String[] mValues = getResources().getStringArray("");
&#34;名称&#34;可以&#34; SS&#34;或&#34; SV&#34;。
如果&#34; name&#34;以后如何找到特定的字符串数组项?是&#34; SS&#34;?
注意:目前我使用
if(name.equals("SS")){
String[] mValues = getResources().getStringArray(R.array.SS);
}else if(name.equals("SV")){
String[] mValues = getResources().getStringArray(R.array.SV);
}
但对我来说,这不是一个好主意,效率低下。
答案 0 :(得分:1)
也许这个页面可以帮助你Android, getting resource ID from string?
public static int getResId(String variableName, Class<?> c) {
try {
Field idField = c.getDeclaredField(variableName);
return idField.getInt(idField);
} catch (Exception e) {
e.printStackTrace();
return -1;
}
答案 1 :(得分:0)
创建类似于
的地图Map<String, Object> map = new HashMap<String, Object>(); // Replace Object with correct type
map.put("SS", R.array.SS);
map.put("SV", R.array.SV);
// ...
String[] mValues = getResources().getStringArray(map.get(name));