手机数据库-------实现SQLiteOpenHelper
java:
package EX05_05.txt;import android.R.anim;import android.R.integer;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteCursor;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class EX05_05 extends Activity {private ToDoDB mToDoDB;private Cursor mCursor;private EditText mEditText;private ListView mListView;private int _id;protected final static int MENU_ADD = Menu.FIRST;protected final static int MENU_EDIT = Menu.FIRST + 1;protected final static int MENU_DELEST = Menu.FIRST + 2;@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubsuper.onOptionsItemSelected(item);switch (item.getItemId()) {case MENU_ADD:addTodo();break;case MENU_EDIT:editTodo();break;case MENU_DELEST:deleteTodo();break;}return true;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubsuper.onCreateOptionsMenu(menu);menu.add(Menu.NONE, MENU_ADD, 0, "添加");menu.add(Menu.NONE, MENU_EDIT, 0, "修改");menu.add(Menu.NONE, MENU_DELEST, 0, "删除");return true;} /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initApp(); }private void initApp() {// TODO Auto-generated method stubmEditText = (EditText)findViewById(R.id.EditText01);mListView = (ListView)findViewById(R.id.ListView01);mToDoDB = new ToDoDB(this);mCursor = mToDoDB.select();SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, mCursor, new String[]{ToDoDB.FIELD_TEXT}, new int[]{R.id.ListView01});mListView.setAdapter(adapter);mEditText.setOnClickListener(new EditText.OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubmEditText.setText("");}});mListView.setOnItemClickListener(new ListView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubmCursor.moveToPosition(arg2);_id = mCursor.getInt(0);mEditText.setText(mCursor.getString(1)+Integer.toString(_id));}});mListView.setOnItemSelectedListener(new ListView.OnItemSelectedListener(){@Overridepublic void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {// TODO Auto-generated method stubSQLiteCursor sc = (SQLiteCursor)arg0.getSelectedItem();_id = sc.getInt(0);mEditText.setText(sc.getString(1)+Integer.toString(_id));}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});}private void addTodo(){if (mEditText.getText().toString().equals("")) {return;}mToDoDB.insert(mEditText.getText().toString());mCursor.requery();mListView.invalidateViews();_id = 0;mEditText.setText("");}private void editTodo(){if (mEditText.getText().toString().equals("")) {return;}mToDoDB.update(_id, mEditText.getText().toString());mCursor.requery();mListView.invalidateViews();_id = 0;mEditText.setText("");}private void deleteTodo(){if (_id == 0) {return;}mToDoDB.delete(_id);mCursor.requery();mListView.invalidateViews();_id = 0;}}
ToDoDB.java:
package EX05_05.txt;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class ToDoDB extends SQLiteOpenHelper{private final static String DATABASE_NAME = "todo_db";private final static String TABLE_NAME = "todo_table";public final static String FIELD_ID = "_id";public final static String FIELD_TEXT = "todo_text";private final static int DATABASE_VISION = 1;public ToDoDB(Context context) {super(context, DATABASE_NAME, null, DATABASE_VISION);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubString sql = "CREATE TABLE " + TABLE_NAME + " (" + FIELD_ID+ " INTEGER primary key autoincrement, " + " " +FIELD_TEXT + " text)";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubString sql = "DROP TABLE IF EXISTS " + TABLE_NAME;db.execSQL(sql);onCreate(db);}public Cursor select(){SQLiteDatabase db = this.getReadableDatabase();Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);return cursor;}public long insert(String text){SQLiteDatabase db = this.getWritableDatabase();ContentValues cv = new ContentValues();cv.put(FIELD_TEXT, text);return db.insert(TABLE_NAME, null, cv);}public void delete(int id){SQLiteDatabase db = this.getWritableDatabase();String whereClause = FIELD_ID + " =?";String[] whereArgs = {Integer.toString(id)};db.delete(TABLE_NAME, whereClause, whereArgs);}public void update(int id, String text){SQLiteDatabase db = this.getWritableDatabase();ContentValues cv = new ContentValues();cv.put(FIELD_TEXT, text);String whereClause = FIELD_ID + " =?";String[] whereArgs = {Integer.toString(id)};db.update(TABLE_NAME, cv, whereClause, whereArgs);}}
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" ><EditText android:id="@+id/EditText01" android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText><ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView></LinearLayout>