Java 从字符串值中查找特定的字符串数组

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

我的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>

但是,对我来说,这不是一个好主意,而且效率低下。

创建一个类似的地图

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;
}