Работа с XML в Android – Devcolibri – Android для начинающих

Работа с XML в Android

Очень часто приходится хранить информацию форм и для этого можно использовать xml файлы. В данном уроке мы это и рассмотрим, как можно работать с файлами XML.

Библиотеки Android имеют набор классов для работы с XML-документами с произвольной структурой и содержанием.

Шаг 1.

Для того чтобы упаковать статический XML файл вместе с вашим приложением, вам нужно поместить его в папку: res/xml/

В каталоге res/ создайте подкаталог xml/ в котором будет располагаться наш ХМL-файл.

После чего вы получите возможность обращаться в коде программы к этому документу.

Шаг 2.

Рассмотрим загрузку XML-документа произвольной структуры из ресурсов в код программы.

Создадим приложения, которое будет уметь способность читать список имен, фамилий  и телефонов, определенных в XML-файле.

Теперь создадим XML файл который будет хранить Имена, Фамилии и номера телефонов сотрудников фирмы и сохраним его в res/xml/ под именем contacts.xml.

Вот как будут выглядеть XML файл contacts.xml

<contacts>
	<contact 
		first_name="Иван" 
		last_name="Иваненко"
		phone="090507"/>
	<contact 
		first_name="Василий"
		last_name="Пупкин"
		phone="123456"/>
	<contact 
		first_name="Денис"
		last_name="Денисенко"
		phone="654879"/>
	<contact 
		first_name="Данил"
		last_name="Даниленко"
		phone="234587"/>
</contacts>

Шаг 3.

Создадим View состоять она будет с LinearLayout и ListView и назовем main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >

    <ListView
            android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:drawSelectorOnTop="false" />

</LinearLayout>

Шаг 4.

Загружаем файл contacts.xml, созданный ранее:

XmlPullParser parser = getResources().getXml(R.xml.contacts);

Метод getXml() возвращает XmlPullParser, используя который можно прочитать загруженный XML-документ в цикле while:

while (parser.getEventType()!= XmlPullParser.END_DOCUMENT) {
    if (parser.getEventType() == XmlPullParser.START_TAG
            && parser.getName().equals("contact")) {
        list.add(parser.getAttributeValue(0) + " "
                + parser.getAttributeValue(1) + "\n"
                + parser.getAttributeValue(2));
    }
    parser.next();
}

В конечном итоге ваше приложение должно выглядеть так:

Весь код MyActivity:

package com.devcolibri.ReadingXMLFile;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import org.xmlpull.v1.XmlPullParser;

import java.util.ArrayList;

public class MyActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ArrayList<String> list = new ArrayList<String>();

        try {
            XmlPullParser parser = getResources().getXml(R.xml.contacts);

            while (parser.getEventType()!= XmlPullParser.END_DOCUMENT) {
                if (parser.getEventType() == XmlPullParser.START_TAG
                        && parser.getName().equals("contact")) {
                    list.add(parser.getAttributeValue(0) + " "
                            + parser.getAttributeValue(1) + "\n"
                            + parser.getAttributeValue(2));
                }
                parser.next();
            }
        }
        catch (Throwable t) {
            Toast.makeText(this,
                    "Ошибка при загрузке XML-документа: " + t.toString(), 4000)
                    .show();
        }

        setListAdapter(new ArrayAdapter<String>(
                this, android.R.layout.simple_list_item_1, list));
    }
}

Обратите внимание что наследуется MyActivity не от Activity а от ListActivity.

ПОХОЖИЕ ПУБЛИКАЦИИ

    None Found

46514
08/03/2013

6 комментариев к статье "Работа с XML в Android"

Добавить комментарий

Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов.

Я ознакомлен(а)