Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrarea de laborator nr. 2
Programarea Aplicaiilor Incorporate i Independente de Platform
A efectuat:
A verificat:
Antohi I.
Chiinu 2013
Sarcina lucrrii:
Elaborarea unei aplicaii ce va efectua urmtoarele operaii asupra fiierului XML:
Citirea datelor
Editarea datelor
Adaugarea date noi
Sortare/Cutare
Realizarea lucrrii:
Pentru realizarea acestei lucrri de laborator vom crea un proiect nou n Eclipse vom
specifica parametrii pentru aplicaia dat dup ce proiectul a fost creat creem un dosar n mapa res a
proiectului cu denumirea XML n acest dosar vom plasa fiierul XML care va conine careva date
prestabilite. Acum vom crea structura fiierului XML dup care l vom salva cu denumirea
custom.xml vezi codul de mai jos:
<?xml version="1.0" encoding="UTF-8" ?>
<Obiecte>
<obiect>
<title>Va contine tilul elementului</title>
<year>anul</year>
<description>descrierea</description>
<image>adresa imaginei locale/din device</image>
</obiect>
<obiect>
<title>Va contine tilul elementului</title>
<year>anul</year>
<description>descrierea</description>
<image>adresa imaginei locale/din device</image>
</obiect>
...
</Obiecte>
Creem o nou clas Obiect.java n care vom salva datelele, mai jos este prezent aceast
clas:
package com.igor.xml.xmldatabase;
public class Obiect {
private String nume;
private int an;
private String image;
private String descriere;
Dup ce am creat fiierul custom.xml i am adugat careva date n el vom trece la etapa
citirii acestuia i anume vom folosi metoda XmlPullParse.
Citirea datelor din fiierul custom.xml prestabilit:
Vom citi datele din fiierul xml i le vom aduga n clasa creat precedent n ntr-o list.
Resources res = activity.getResources();
XmlResourceParser xpp = res.getXml(R.xml.custom);
xpp.next();
int eventType = xpp.getEventType();
String title="", description="", tag="";
int year = 0;
while (eventType != XmlPullParser.END_DOCUMENT){
if (eventType == XmlPullParser.START_TAG) {
tag = xpp.getName();
}
else if (eventType == XmlPullParser.TEXT) {
if(tag.equals("title")) {
title = xpp.getText();
}
else if(tag.equals("year")){
year = Integer.parseInt(xpp.getText());
}
else if(tag.equals("description")){
description = xpp.getText();
}
else if(tag.equals("image")){
myItem.add(new Obiect(title, year,
xpp.getText().toString() , description));
}
}
eventType = xpp.next();
} // end while loop
Codul pentru inscrierea datelor din list n XML dup cum se observ se creaz un fiier nou
cu denumirea myxml.xml acesta a fost creat ca variabil global i n funcia dat se apeleaz ctre
acest fiier pentru nscrierea datelor, aceste date sunt luate din myItem care este o list n care se
salveaz toate datele.
xmlSerializer.startTag("", "image");
xmlSerializer.text(it.getImage());
xmlSerializer.endTag("", "image");
xmlSerializer.endTag("", "obiect");
}
xmlSerializer.endTag("", "Obiecte");
xmlSerializer.endDocument();
xmlSerializer.flush();
fileos.close();
}
Structura elementelor din listview
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<ImageView
android:id="@+id/item_icon"
android:contentDescription="@string/app_name"
android:layout_width="60dip"
android:layout_height="60dip"
android:src="@drawable/unknown" />
<TextView
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/item_icon"
android:layout_marginLeft="10dp"
android:text="@string/sample"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/item_an"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_alignBottom="@+id/item_icon"
android:layout_alignLeft="@+id/item_name"
android:text="@string/sample"
android:textColor="#343434"
android:textSize="18sp" />
</RelativeLayout>
Rezultatele aplicaiei:
MainAcitivity:
DetailsAcitivity
GestionareActivity
Concluzii:
Efectun aceast lucrarea de laborator am neles metoda de citire modificare adugare
date noi ntrun fiier xml. Mi-am aprofundat cunotinele cu utilizarea listview i a
arrayAdapter/List.