Hướng Dẫn Lập Trình Cơ Bản Với Android - Bai 6

  • Upload
    son2483

  • View
    10

  • Download
    0

Embed Size (px)

DESCRIPTION

Hướng Dẫn Lập Trình Cơ Bản Với Android - Bai 6

Citation preview

Hng dn lp trnh c bn vi Android - Bi 6

Hng dn lp trnh c bn vi Android - Bi 6

Reflink: http://diendan.vietandroid.com/cac-bai-hoc-co-kem-ma-nguon/991-huong-dan-lap-trinh-co-ban-voi-android-bai-6-a.htmlList tutorialBi 0 - Ci t v s dng Android vi EclipseBi 1 - C bn AndroidBi 2 - Xy dng giao din n ginBi 3 - ViewGroup v Custom AdapterBi 4 - Intent v Broadcast ReceiverBi 5 - ServiceBi 6 - SQLiteBi 7 - Content ProviderBi 8 : Thread & Handler (Coming soon)Bi 6 : Android SQLite Database

Trong bi hm nay mnh s gii thiu vi cc bn c s d liu trn Android - SQLiteDatabase.

0. Gii thiu SQLite DatabaseMi ng dng u s dng d liu, d liu c th n gin hay i khi l c 1 cu trc. Trong Android th h c s d liu c s dng l SQLite Database, y l h thng m ngun m c s dng rng ri trong cc ng dng ( Mozilla Firefox s dng SQLite lu tr cc d liu v cu hnh, iPhone cng s dng c s d liu l SQLite).Trong Android , c s d liu m bn to cho 1 ng dng th ch ng dng c quyn truy cp v s dng, cc ng dng khc th khng. Khi c to, c s d liu SQLite c cha trong th mc/data/data//databases.

Tip theo mnh s gii thiu vi cc bn cch to v s dng c s d liu SQLite . Cch tt nht hiu l thuyt l thc hnh, cc bn c th to ngay 1 project trong workspace t tn l : SQLiteDemo. ng dng ny n gin ch to 1 c s d liu USER bao gm 2 trng ( id , name ) , ngoi ra c cc thao tc thm , c , sa , xa.

Cc bc thc hin vi CSDL:

1. To 1 CSDL ( thng thng ch cn lm 1 ln )2. M CSDL 3. Thm gi tr vo trong table4. Truy vn.5. ng CSDL

1. To c s d liu.u tin cc bn add 1 class DBAdapter x l tt c cc thao tc lin quan n CSDL.M:

public static final String KEY_ID = "_id";

public static final String KEY_NAME = "name";

private DatabaseHelper mDbHelper;

private SQLiteDatabase mDB;

private static final String DATABASE_CREATE = "create table users (_id integer primary key autoincrement, "

+ "name text not null);";

private static final String DATABASE_NAME = "Database_Demo";

private static final String DATABASE_TABLE = "users";

private static final int DATABASE_VERSION = 2;

private final Context mContext;

To 1 lp bn trong DBAdapter c extend t lp SQLiteOpenHelper, override 2 phng thc onCreate() v onUpgrade() qun l vic to CSDL v version ca CSDL .M:

private static class DatabaseHelper extends SQLiteOpenHelper{

public DatabaseHelper(Context context, String name,

CursorFactory factory, int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

db.execSQL(DATABASE_CREATE);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub

Log.i(TAG, "Upgrading DB");

db.execSQL("DROP TABLE IF EXISTS users");

onCreate(db);

}

}

2. M CSDL :M:

public DBAdapter open()

{

mDbHelper = new DatabaseHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION);

mDB = mDbHelper.getWritableDatabase();

return this;

}

3. Thm gi tr vo CSDLM:

public long createUser(String name){

ContentValues inititalValues = new ContentValues();

inititalValues.put(KEY_NAME, name);

return mDB.insert(DATABASE_TABLE, null, inititalValues);

}

4. Truy vnBn c th get ton b data hoc c th get data theo ID ( tin cho vic chnh sa hay cp nht thng tin ca tng bn ghi).M:

public Cursor getAllUsers(){

return mDB.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_NAME}, null, null, null, null, null);

}

Cn rt nhiu cc thao tc nh sa, xa, update.... bn ghi, cc bn c th t pht trin.Tt c cc chc nng u c cung cp bi lp SQLiteDatabase, cc bn ch cn c th ha bng cc cu truy vn l c.

5. ng CSDLM:

public void close(){

mDbHelper.close();

}

6. S dng CSDL test CSDL m bn va to, cc bn c th thm 1 vi dng code thm 1 user v hin th CSDL ln mn hnh thng qua lp Activity ban u: y mnh create 1 user thng qua cu lnh mDB.createUser("Username"); sau M: public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mDB = new DBAdapter(this);

mDB.open();

mDB.createUser("Do Minh Thong");

getData();

}

private void getData(){

mCursor = mDB.getAllUsers();

startManagingCursor(mCursor);

String[] from = new String[]{DBAdapter.KEY_NAME};

int[] to = new int[] {R.id.text1};

SimpleCursorAdapter users = new SimpleCursorAdapter(this, R.layout.users_row, mCursor, from, to);

setListAdapter(users);

}

Kt qu :

Sourcecode y :http://www.mediafire.com/?yzw2d1ijymo

Bi ny l bi c s mnh vit tip Phn 7 : ContentProvider , cc bn ch theo di nh

GL&HL All.