Using SQLite in Android Application
每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库 --大名鼎鼎的SQLite。SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可能只需要几百KB,这也是 Android 系统采用 SQLite 数据库的原因之一吧。 简介
SQLite使用介绍 import android.content.ContentValues; android.content.Context; android.database.Cursor; android.database.sqlite.SQLiteDatabase; android.database.sqlite.SQLiteOpenHelper; android.database.sqlite.SQLiteDatabase.CursorFactory; public class dbHelper extends SQLiteOpenHelper{ private final static StringDATABASE_NAME = " sec_db ; int DATABASE_VERSION 1 StringTABLE_NAME sec_pwd StringFIELD_ID _id StringFIELD_TITLE sec_Title ; dbHelper(Contextcontext) { super (context,DATABASE_NAME, null ,DATABASE_VERSION); } @Override void onCreate(SQLiteDatabasedb){ // TODOAuto-generatedmethodstub Stringsql Createtable + TABLE_NAME ( FIELD_ID integerprimarykeyautoincrement,0)">FIELD_TITLE text); ; db.execSQL(sql); } @Override onUpgrade(SQLiteDatabasedb,0)">oldVersion,0)">newVersion){ DROPTABLEIFEXISTS TABLE_NAME; db.execSQL(sql); onCreate(db); } Cursorselect() { SQLiteDatabasedb this .getReadableDatabase(); Cursorcursor db.query(TABLE_NAME,0)">_iddesc ); return cursor; } long insert(StringTitle) { SQLiteDatabasedb .getWritableDatabase(); ContentValuescv new ContentValues(); cv.put(FIELD_TITLE,Title); row db.insert(TABLE_NAME,cv); row; } delete( id) { SQLiteDatabasedb .getWritableDatabase(); Stringwhere =? ; String[]whereValue {Integer.toString(id)}; db.delete(TABLE_NAME,where,whereValue); } update( id,StringTitle) { SQLiteDatabasedb {Integer.toString(id)}; ContentValuescv
现在dbHelper己经封装完毕,接下来正式进入到我们实际例子中要操作的功能吧,项目运行效果图: 这里用到了Menu做功能按钮,实例代码如下: android.app.Activity;android.database.sqlite.SQLiteCursor; android.os.Bundle; android.view.Menu; android.view.MenuItem; android.view.View; android.widget.AdapterView; android.widget.EditText; android.widget.ListAdapter; android.widget.ListView; android.widget.SimpleCursorAdapter; android.widget.AdapterView.OnItemClickListener; android.widget.AdapterView.OnItemSelectedListener; testDbActivity Activity{ dbHelperdb; CursormyCursor; ListViewmyListView; EditTextmyEditText; _id; protected MENU_ADD Menu.FIRST; MENU_EDIT Menu.FIRST MENU_DELETE 2 ; @Override boolean onCreateOptionsMenu(Menumenu){ .onCreateOptionsMenu(menu); menu.add(Menu.NONE,MENU_ADD,0)">0 true ; } @Override onOptionsItemSelected(MenuItemitem){ .onOptionsItemSelected(item); switch (item.getItemId()){ case MENU_ADD: operation( add break MENU_EDIT: operation( edit MENU_DELETE: operation( delete default : ; } ; } /** Calledwhentheactivityisfirstcreated. */ @Override onCreate(BundlesavedInstanceState){ .onCreate(savedInstanceState); setContentView(R.layout.main); myEditText (EditText)findViewById(R.id.EditText1); myListView (ListView)findViewById(R.id.ListView1); db dbHelper(testDbActivity. ); myCursor db.select(); SimpleCursorAdapteradpater SimpleCursorAdapter( ,R.layout.test,myCursor, String[]{dbHelper.FIELD_TITLE},0)">[]{R.id.topTextView}); myListView.setAdapter(adpater); myListView.setOnItemClickListener( OnItemClickListener(){ @Override onItemClick(AdapterView <?> arg0,Viewarg1,0)">arg2,0)">arg3){ myCursor.moveToPosition(arg2); _id myCursor.getInt( ); myEditText.setText(myCursor.getString( )); } }); myListView.setOnItemSelectedListener( OnItemSelectedListener(){ @Override onItemSelected(AdapterView SQLiteCursorsc (SQLiteCursor)arg0.getSelectedItem(); _id sc.getInt( ); myEditText.setText(sc.getString( )); } @Override onNothingSelected(AdapterView arg0){ } }); } operation(Stringcmd) { if (myEditText.getText().toString().equals( "" )) (cmd == ) db.insert(myEditText.getText().toString()); ) db.update(_id,myEditText.getText().toString()); ) db.delete(_id); myCursor.requery(); myListView.invalidateViews(); myEditText.setText( ); _id ; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |