手机数据库-------实现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;
	
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		super.onOptionsItemSelected(item);
		switch (item.getItemId()) {
		case MENU_ADD:
			addTodo();
			break;

		case MENU_EDIT:
			editTodo();
			break;
		case MENU_DELEST:
			deleteTodo();
			break;
		}
		return true;
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		super.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 stub
		mEditText = (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()
		{
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				mEditText.setText("");
			}
			
		});
		
		mListView.setOnItemClickListener(new ListView.OnItemClickListener()
		{

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				mCursor.moveToPosition(arg2);
				_id = mCursor.getInt(0);
				
				mEditText.setText(mCursor.getString(1)+Integer.toString(_id));
			}
			
		});
		mListView.setOnItemSelectedListener(new ListView.OnItemSelectedListener()
		{

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				SQLiteCursor sc = (SQLiteCursor)arg0.getSelectedItem();
				_id = sc.getInt(0);
				
				mEditText.setText(sc.getString(1)+Integer.toString(_id));
			}

			@Override
			public 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
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		String sql = "CREATE TABLE " + TABLE_NAME + " (" + FIELD_ID
						+ " INTEGER primary key autoincrement, " + " " +
						FIELD_TEXT + " text)";
		db.execSQL(sql);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		String 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>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值