2014-12-02 45 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

相關問題