在 expandablelistview 中显示 res/raw/data.xml



我试图用res/raw/data.xml制作可扩展的列表视图数据,但我不知道如何连接它。在此之前,我使用的是来自以下活动的直接数据:

private void prepareListData() {
        listDataHeader = new ArrayList<String>();
        listDataChild = new HashMap<String, List<String>>();
        // Adding child data
        listDataHeader.add("Basic");
        listDataHeader.add("Data Types");
        // Adding child data
        List<String> top250 = new ArrayList<String>();
        top250.add("Introduction");
        top250.add("Data Types");
        top250.add("Schema");
        top250.add("Use in Ajax");
        top250.add("Examples");
        List<String> nowShowing = new ArrayList<String>();
        nowShowing.add("Overview");
        nowShowing.add("Array");
        nowShowing.add("Boolean");
        nowShowing.add("Object");
        nowShowing.add("Number");
        nowShowing.add("String");
        nowShowing.add("False");
        nowShowing.add("True");
        nowShowing.add("Null");
        listDataChild.put(listDataHeader.get(0), top250); // Header, Child data
        listDataChild.put(listDataHeader.get(1), nowShowing);
    }
}

我想从res/raw/data.xml添加数据。 这是data.xml代码:

<?xml version="1.0" encoding="UTF-8"?>
    <entries>
        <section name="Basics">
            <entry id="1">
                <name>Introduction</name>
                <htmlfilename>basics_intro</htmlfilename>
            </entry>
            <entry id="2">
                <name>Data Types</name>
                <htmlfilename>basics_datatypes</htmlfilename>
            </entry>
            <entry id="3">
                <name>Schema</name>
                <htmlfilename>basics_schema</htmlfilename>
            </entry>
            <entry id="3">
                <name>Use in Ajax</name>
                <htmlfilename>basics_ajaxuse</htmlfilename>
            </entry>
            <entry id="4">
                <name>Cheat Sheet</name>
                <htmlfilename>basics_cheatsheet</htmlfilename>
            </entry>
            <entry id="4">
                <name>Examples</name>
                <htmlfilename>basics_examples</htmlfilename>
            </entry>
        </section>
        <section name="Data Types">
            <entry id="5">
                <name>Overview</name>
                <htmlfilename>datatypes_overview</htmlfilename>
            </entry>
            <entry id="6">
                <name>Array</name>
                <htmlfilename>datatypes_array</htmlfilename>
            </entry>
            <entry id="7">
                <name>Boolean</name>
                <htmlfilename>datatypes_boolean</htmlfilename>
            </entry>
            <entry id="8">
                <name>Object</name>
                <htmlfilename>datatypes_object</htmlfilename>
            </entry>
            <entry id="9">
                <name>Number</name>
                <htmlfilename>datatypes_number</htmlfilename>
            </entry>
            <entry id="10">
                <name>String</name>
                <htmlfilename>datatypes_string</htmlfilename>
            </entry>
            <entry id="11">
                <name>true</name>
                <htmlfilename>datatypes_true</htmlfilename>
            </entry>
            <entry id="11">
                <name>false</name>
                <htmlfilename>datatypes_false</htmlfilename>
            </entry>
            <entry id="11">
                <name>null</name>
                <htmlfilename>datatypes_null</htmlfilename>
            </entry>
        </section>
    </entries>

谁能帮我?

目前,您正在listDataHeaderlistDataChild中静态添加数据。 从xml文件填充ArrayList和HashMap中的数据prepareListData()方法更改为:

1.data.xml文件移动到目录中assets而不是res

2. 使用AssetManager从资产中读取文件作为InputStream

  AssetManager assetManager = YourAcivityClassName.this.getAssets();
  InputStream inputStream = assetManager.open("data.xml");

3. 使用 SAXDOM 解析器解析 xml,以获取 ArrayList 和 HashMap 中的所有节点数据。请参阅以下教程以了解使用 SAXParser 的 pasring xml: 从资产或内部/外部存储中解析 XML 文件

最新更新