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

时间:2014-10-03 19:54:02

标签: 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> 
   <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);
}

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

2 个答案:

答案 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));