2012-02-21 45 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对象的文件,正如上面其他人所描述的那样。