【问题标题】:How to get an array of string from an xml file saved on internal storage in android?如何从保存在android内部存储中的xml文件中获取字符串数组?
【发布时间】:2014-12-02 22:03:46
【问题描述】:

我有一个非常简单的 xml 文件,在运行时创建,它与 res/array.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");

那么我怎样才能从那开始得到相同的结果呢?

【问题讨论】:

    标签: android arrays android-resources


    【解决方案1】:

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

    如果您想在应用程序中存储复杂数据,我强烈建议您不要使用 XML,而是将 JSON 与 Gson 或什至像 OrmLite 这样的 ORM 库结合使用。

    【讨论】:

    • 我还建议走 JSON/GSON 路线。能够使用由库解析出来的模型对象比自己手动解析要好得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多