2014-12-02 32 views
0

我有一个非常简单的xml文件,在运行时创建,它非常类似于res/array.xml,但它保存在内部存储中。它是这样的:如何从android内部存储器上保存的xml文件中获取字符串数组?

<?xml version="1.0" encoding="utf-8"?> 

<resources> 

    <string-array name="group0_arr"> 
     <item>1,name,desc</item> 
     <item>2,name,desc</item> 
     <item>3,name,desc</item> 
    </string-array> 

    <string-array name="group1_arr"> 
     <item>100,name,desc</item> 
     <item>101,name,desc</item> 
     <item>102,name,desc</item> 
    </string-array> 

</resources> 

在我的活动得到来自RES/array.xml字符串数组我使用的代码:

String[] arrayOfString0 context.getResources().getStringArray(R.array.group0_arr); 

但要获得我使用内部存储的文件:

File darf= new File(this.getFilesDir(), "other_array.xml"); 

那么我怎么能从那得到相同的结果呢?

回答

1

对于除strings.xml之类的某些预定义XML文件之外的XML文件,您将无法应用与getResources()相同的“简单”解决方案。当你使用getResources()时,Android已经为你做了很多工作。 如果你想使用自己的自定义XML文件,你需要解析它。 您可以使用XmlPullParserDOM-Parser“手动”或使用库如SimpleXML。 它肯定不会像使用getResources()时使用的预定义资源那么方便。

如果你想你的应用程序中的存储复杂的数据,我强烈建议不要使用XML而是JSON结合Gson甚至一个ORM库像OrmLite

+0

我也建议去JSON/GSON路线。能够处理由库解析出的模型对象比手动解析事情要好得多。 – zgc7009 2014-12-02 22:14:50

相关问题