首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Android范例二:手机数据库SQListe

2012-07-18 
Android实例二:手机数据库SQListe[code"java"]SQLiteActivity.javapublic class SQLiteActivit

Android实例二:手机数据库SQListe

[code="java"]SQLiteActivity.java

public class SQLiteActivity extends Activity {
???? private ToDoDB myToDoDB;
???? private Cursor myCurson;
???? private ListView myListView;
???? private EditText myEditText;
???? 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_DELETE = Menu.FIRST + 2;
????
???? @Override
??? public boolean onOptionsItemSelected(MenuItem item) {
??? super.onOptionsItemSelected(item);
??? switch(item.getItemId()){
??? case MENU_ADD:
??? this.addTodo();
??? break;
??? case MENU_EDIT:
??? this.editTodo();
??? break;
??? case MENU_DELETE:
??? this.deleteTodo();
??? break;
???
??? }
??? return true;
??? }
????
????
???? @Override
???? public boolean onCreateOptionsMenu(Menu menu) {
??? super.onCreateOptionsMenu(menu);
??? //添加三个MENU
??? menu.add(Menu.NONE,MENU_ADD,0,R.string.strAddButton);
??? menu.add(Menu.NONE,MENU_EDIT,0,R.string.strEditButton);
??? menu.add(Menu.NONE,MENU_DELETE,0,R.string.strDeleteButton);
??? return true;
???? }????
??? @Override
??? public void onCreate(Bundle savedInstanceState) {
??????? super.onCreate(savedInstanceState);
??????? setContentView(R.layout.main);
???????
??????? myListView = (ListView)this.findViewById(R.id.myListView);
??????? myEditText = (EditText)this.findViewById(R.id.myEditText);
??????? myToDoDB = new ToDoDB(this);
??????? //取得DataBase里的数据
??????? myCurson = myToDoDB.select();
??????? //new? SimpleCursonAdapter并将myCursor传入,显示 数据的字段为todo_text
??????? SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list,myCurson,new String[]{
??????? ToDoDB.FIELD_TEXT},new int[]{R.id.listTextView1});
??????? myListView.setAdapter(adapter);
??????? //将myListView添加OnItemClickListener
??????? myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView> arg0, View arg1, int arg2,
long arg3) {
? //将myCurson移到所单击的值
myCurson.moveToPosition(arg2);
//取得字段_id的值
_id = myCurson.getInt(0);
//取得字段todo_text的值
myEditText.setText(myCurson.getString(1));

}
???????
});
???????
??????? myListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView> arg0, View arg1,
int arg2, long arg3) {
SQLiteCursor sc=(SQLiteCursor)arg0.getSelectedItem();
_id = sc.getInt(0);
myEditText.setText(sc.getString(1));

}

@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub

}
});
???????
??? }
???
???
???
??? private void addTodo(){
?????? if(myEditText.getText().toString().equals(""))
??? return ;
?????? //添加数据到数据库
?????? myToDoDB.insert(myEditText.getText().toString());
?????? //重新查询
?????? myCurson.requery();
?????? //刷新myListView
?????? myListView.invalidateViews();
?????? myEditText.setText("");
?????? _id =0;
??? }
???
???
??? private void editTodo(){
??? if(myEditText.getText().toString().equals(""))
??? return ;
?????? //修改数据
??? myToDoDB.update(_id, myEditText.getText().toString());
??? myCurson.requery();
??? myListView.invalidateViews();
??? myEditText.setText("");
??? _id=0;
???
??? }
???
??? private void deleteTodo(){
??? if(_id==0){
??? return;
??? }
??? //删除数据
??? myToDoDB.delete(_id);
??? myCurson.requery();
??? myListView.invalidateViews();
??? myEditText.setText("");
??? _id=0;
??? }
???
}
?? ToDoDB.java

? package com.chaowen;

[code="java"]import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class ToDoDB extends SQLiteOpenHelper
{
? private final static String DATABASE_NAME = "todo_db";
? private final static int DATABASE_VERSION = 1;
? private final static String TABLE_NAME = "todo_table";
? public final static String FIELD_id = "_id";
? public final static String FIELD_TEXT = "todo_text";

? public ToDoDB(Context context)
? {
??? super(context, DATABASE_NAME, null, DATABASE_VERSION);
? }

? @Override
? public void onCreate(SQLiteDatabase db)
? {
??? /* ミtable */
??? 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)
? {
??? 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 */
??? ContentValues cv = new ContentValues();
??? cv.put(FIELD_TEXT, text);
??? long row = db.insert(TABLE_NAME, null, cv);
??? return row;
? }

? public void delete(int id)
? {
??? SQLiteDatabase db = this.getWritableDatabase();
??? String where = FIELD_id + " = ?";
??? String[] whereValue =
??? { Integer.toString(id) };
??? db.delete(TABLE_NAME, where, whereValue);
? }

? public void update(int id, String text)
? {
??? SQLiteDatabase db = this.getWritableDatabase();
??? String where = FIELD_id + " = ?";
??? String[] whereValue =
??? { Integer.toString(id) };
??? /* 盢эContentValues */
??? ContentValues cv = new ContentValues();
??? cv.put(FIELD_TEXT, text);
??? db.update(TABLE_NAME, cv, where, whereValue);
?




Android范例二:手机数据库SQListe

?

楼主的头像内容 很是给力,支持你

热点排行