Store Parsed Xml Data To Sqlite ? Android
I want to store the data which is shown by setListAdapter to sqlite .. how ca i ?? please help me XML File http://p-xr.com/xml package com.pxr.tutorial.xmltest; import java.uti
Solution 1:
I suggest you parse the data first then save it into database and then show.
If you didn't create database you have to do it first, sample code how to do it bellow
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
*
* @author Robert
*
*/publicclassDatabaseHelperextendsSQLiteOpenHelper{
/**
* Default constructor- creates database
* @param context
*/publicDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
/**
* Implemented methood from SQLiteOpenHelper- called when
* constructor of DatabaseHelper is called
* Creates three tables (TRIP, POINT, TRANSFER) with relations
* TRAVEL-POINT and POINT TRANSFER
* @see SQLiteOpenHelper
*/@OverridepublicvoidonCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TRIP_TABLE_NAME
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ FROM + " TEXT, "
+ TO + " TEXT);");
db.execSQL("CREATE TABLE " + TRANSFER_TABLE_NAME
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ NOTE + " TEXT, "
+ TIME + " TEXT, "
+ DATE + " TEXT, "
+ ADDRESS + " TEXT, "
+ CITY + " TEXT, "
+ COUNTRY + " TEXT, "
+ LATITUDE + " TEXT, "
+ LOGITUDE + " TEXT, "
+ TRANFER_TYPE + " TEXT, "
+ FK_POINT + " INTEGER NOT NULL REFERENCES "+ POINT_TABLE_NAME +"(_id)"
+ "ON DELETE CASCADE);");
db.execSQL("CREATE TABLE " + POINT_TABLE_NAME
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ NAME + " TEXT, "
+ ADDRESS + " TEXT, "
+ CITY + " TEXT, "
+ COUNTRY + " TEXT, "
+ LATITUDE + " TEXT, "
+ LOGITUDE + " TEXT, "
+ FK_TRAVEL + " INTEGER NOT NULL REFERENCES "+ TRIP_TABLE_NAME +"(_id)"
+ "ON DELETE CASCADE);");
}
/**
* Implemented method from SQLiteOpenHelper- we don't use it now
* @see SQLiteOpenHelper
*/@OverridepublicvoidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
/**
* Private fields, mainly names of columns and tables in database
*/privatestaticfinalStringDATABASE_NAME="TRAVELER_NOTEBOOK";
//Table namesprivatestaticfinalStringTRIP_TABLE_NAME="TRIP";
privatestaticfinalStringPOINT_TABLE_NAME="POINT";
privatestaticfinalStringTRANSFER_TABLE_NAME="TRANSFER";
//Columns namesprivatestaticfinalStringFROM="FROM_PLACE";
privatestaticfinalStringTO="TO_PLACE";
privatestaticfinalStringNAME="NAME";
privatestaticfinalStringADDRESS="ADDRESS";
privatestaticfinalStringCITY="CITY";
privatestaticfinalStringCOUNTRY="COUNTRY";
privatestaticfinalStringLATITUDE="LATITUDE";
privatestaticfinalStringLOGITUDE="LOGITUDE";
privatestaticfinalStringNOTE="NOTE";
privatestaticfinalStringTIME="TIME";
privatestaticfinalStringDATE="DATE";
privatestaticfinalStringTRANFER_TYPE="TRANSFER_TYPE";
//Foregin keys nameprivatestaticfinalStringFK_TRAVEL="FK_TRAVEL_ID";
privatestaticfinalStringFK_POINT="FK_POINT_ID";
}
The next step is to get writable database in your activity, you can do it by creating
SQLiteDatabasedatabase= (newDatabaseHelper(this).getWritableDatabase());
where DatabaseHelper is name of your database helper class. If you want to insert something into database just make someting simillar like bellow:
privatevoidprocessAdd(values_to_save) {
ContentValuesvalues=newContentValues(number_of_values);
values.put(column_name, value);
values.put(column_name, value);
if(database!=null){
database.insert(TABLE_NAME, null, values);
} else{
Log.e("MyAppError", "Database is null");
}
}
ContentValue is something like HashMap key-value where key is column name and value- that what you want insert. Remember that in each table you should have column "_id primary key auto increment" as I remember good you don't have to but it make's your project more complicated.
Post a Comment for "Store Parsed Xml Data To Sqlite ? Android"