Java 从字符串值中查找特定的字符串数组
我的Android项目中的string.xml文件中有多个字符串数组Java 从字符串值中查找特定的字符串数组,java,android,arrays,mobile,Java,Android,Arrays,Mobile,我的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> <it
<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>
但是,对我来说,这不是一个好主意,而且效率低下。创建一个类似的地图
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));
Map Map=newhashmap();//用正确的类型替换对象
map.put(“SS”,R.array.SS);
map.put(“SV”,R.array.SV);
// ...
String[]mValues=getResources().getStringArray(map.get(name));
也许这个页面可以帮助你
publicstaticintgetresid(字符串变量名,c类){
试一试{
字段idField=c.getDeclaredField(variableName);
返回idField.getInt(idField);
}捕获(例外e){
e、 printStackTrace();
返回-1;
}
if(name.equals("SS")){
String[] mValues = getResources().getStringArray(R.array.SS);
}else if(name.equals("SV")){
String[] mValues = getResources().getStringArray(R.array.SV);
}
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));
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;
}