Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在expandablelistview中显示res/raw/data.xml_Android_Xml - Fatal编程技术网

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

Android 在expandablelistview中显示res/raw/data.xml,android,xml,Android,Xml,我试图在res/raw/data.xml中创建expandableListView数据,但我不知道如何连接它。在此之前,我使用的是来自以下活动的直接数据: private void prepareListData() { listDataHeader = new ArrayList<String>(); listDataChild = new HashMap<String, List<String>>(); /

我试图在res/raw/data.xml中创建expandableListView数据,但我不知道如何连接它。在此之前,我使用的是来自以下活动的直接数据:

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);

    }
}

有人能帮我吗?

目前,您正在listDataHeader和listDataChild中静态添加数据。要从xml文件中填充ArrayList和HashMap中的数据,请将prepareListData方法更改为:

一,。将data.xml文件移动到assets目录而不是res目录中

二,。使用AssetManager从资产中将文件作为InputStream读取:

三,。使用SAX或DOM解析器解析xml,以获取ArrayList和HashMap中的所有节点数据。有关使用SAXParser的pasring xml,请参阅以下教程:

@markshadow:您可以在资源中放置多个文件
<?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>
  AssetManager assetManager = YourAcivityClassName.this.getAssets();
  InputStream inputStream = assetManager.open("data.xml");