2012-02-21 43 views
2

有沒有一種方法可以在Android資源中使用字典。我在String.xml文件中找不到關於字典的任何內容,並且可搜索的文件包含許多其他不需要的字段。安卓資源中的字典

編輯:在C#和Visual Studio中,我們可以將字典添加到資源以及字符串或整型,但是,我找不到任何選項將字典添加到資源,只有字符串和字符串數組或整數可用在Android資源上。

+0

問題不明確 – jeet 2012-02-21 04:50:56

+0

@ jitendra sharma:我編輯了這個問題。 – Daniel 2012-02-21 06:22:35

回答

2

沒有這樣的資源類型。你必須在res/raw /中放入一個任意文件並手動將其導入到HashMap中。

+0

如何訪問res/raw中的文件? – Daniel 2012-03-14 06:24:51

+1

要使用原始InputStream打開這些資源,請使用資源ID(即R.raw.filename)調用Resources.openRawResource()。 (http://developer.android.com/guide/topics/resources/providing-resources.html) – drakyoko 2012-03-14 09:31:36

6

也許它單曲晚在這裏回答,但你可以使用這樣的事情:

RES/strings.xml中

<string-array name="tags"> 
    <item>KEY_A:Some string value 1</item> 
    <item>KEY_B:Some string value 2</item> 
    <item>KEY_C:Some string value 3</item> 
</string-array> 

在這裏, 「:」 符號代表分隔符字符串數組中的鍵 - 值對之間。

然後在某處代碼(例如的onCreate()):

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    String[] tags = getResources().getStringArray(R.array.tags); 
    for(String tag : tags) { 
     String[] pair = tag.split(":"); 

     String key = pair[0]; 
     String value = pair[1]; 

     // do whatever you want with key and value 
    } 
} 

這種做法是好的,如果你有更復雜的數據更簡單的數據使用RES /生帶有json對象的文件,正如上面其他人所描述的那樣。