2014-10-03 200 views
-1

我的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(""); 

「名稱」 可以是 「SS」 或 「SV」。

如果「name」是「SS」,以後如何才能找到特定的字符串數組項?

注:目前我使用

if(name.equals("SS")){ 
    String[] mValues = getResources().getStringArray(R.array.SS); 
}else if(name.equals("SV")){ 
    String[] mValues = getResources().getStringArray(R.array.SV); 
} 

,但對我來說,是不是一個好主意,效率低下。

回答

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)); 
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; 
} 
相關問題