0

我想在 ListView 中显示大陆的名称,我们称之为listContinents。选择例如 US 后,我想在那里显示所有州,我们称之为ListStates。选择一个特定的州后,我想显示该州的所有城市,我们称之为ListCity。选择一个城市后,我想显示有关该城市的一些信息,我们称之为listCityInfo。这是我上面所说的总结。

大陆>>>>城市>>信息

如何创建一个包含所有信息的 XML 文件并从中读取?基本上我不知道怎么做。我将信息存储在 html 文件中,所以我应该将其转换为 XML 文件。这是要走的路吗?

如果 XML 文件包含所有信息,我将如何读取它。如果 XML 文件仅包含我知道如何阅读的大洲、州或城市,但当所有这些都存在时则不包含。我如何使它工作?我不想为每个州创建超过 500 个包含城市的 XML 文件,这会浪费时间。

有人可以使用任何示例向我说明这是如何工作的或将我链接到有用的网站吗?

我将不胜感激,谢谢!

4

2 回答 2

0

这是我将如何做到的。

  1. 将您的信息保存到 SQlite 数据库中并将其放入资产文件夹中。(但如果您熟悉 webservice,我建议您使用它。并使用​​ json,因为 xml 在 Android 中很麻烦)
  2. 阅读它并填充到可扩展的 listview中。
    示例示例
于 2013-01-12T04:19:42.977 回答
-1
  File newxmlfile = new File("/data/com.itwine/emergency.xml");

        try{
                newxmlfile.createNewFile();
        }catch(IOException e){
                Log.e("IOException", "exception in createNewFile() method");
        }
        //we have to bind the new file with a FileOutputStream
        FileOutputStream fileos = null;        
        try{
                fileos = new FileOutputStream(newxmlfile);
        }catch(FileNotFoundException e){
                Log.e("FileNotFoundException", "can't create FileOutputStream");
        }
        //we create a XmlSerializer in order to write xml data
        XmlSerializer serializer = Xml.newSerializer();
        try {
                //we set the FileOutputStream as output for the serializer, using UTF-8 encoding
                        serializer.setOutput(fileos, "UTF-8");
                        //Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null)
                        serializer.startDocument(null, Boolean.valueOf(true));
                        //set indentation option
                        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
                        //start a tag called "root"
                        serializer.startTag(null, "root");
                        *//**serializer.startTag(null, "Child1");
                        serializer.endTag(null, "Child1");
                        serializer.startTag(null, "Child2");
                        serializer.attribute(null, "attribute", "value");
                        serializer.endTag(null, "Child2");*//*
                        serializer.startTag(null, "EmailId");
                        serializer.text(txtemailid.getText().toString());
                        serializer.endTag(null,"EmailId");
                        serializer.startTag(null, "PhoneNo");
                        serializer.text(txtphoneno.getText().toString());
                        serializer.endTag(null,"PhoneNo");
                        serializer.endTag(null,"root");
                        serializer.endDocument();
                        //write xml data into the FileOutputStream
                        serializer.flush();
                        //finally we close the file stream
                        fileos.close();
                       Toast.makeText(getApplication(), "xml created",Toast.LENGTH_LONG);
                } catch (Exception e) {
                        Log.e("Exception","error occurred while creating xml file");
                }

是的,有一种方法。您可以使用 FileOutputStream 编写 Xmlfile。并使用 XMLserializer 设置属性和标签。看看我给出的示例。

于 2013-01-12T04:14:52.753 回答