[Android实例] Android DB数据库实例

来源:互联网 发布:java 字节码 编辑:程序博客网 时间:2024/03/29 17:25
我们今天给大家分享的主要就是我们在编程当中必须用到的东西,那就是数据库,这个对我们来说是非常重要的,那么我们通过这个小的例子就会明白了,数据库其实也不是那么难的,那么我们就来看看数据库的主要代码:

package eoe.demo;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 DBActivity extends Activity {private ToDoDB myToDoDB;private Cursor myCursor;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;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;}public boolean onCreateOptionsMenu(Menu menu){super.onCreateOptionsMenu(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;}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里的数据 */myCursor = myToDoDB.select();/* new SimpleCursorAdapter并将myCursor传入,显示数据的字段为todo_text */SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.list, myCursor, new String[]{ ToDoDB.FIELD_TEXT }, new int[]{ R.id.listTextView1 });myListView.setAdapter(adapter);/* 将myListView添加OnItemClickListener */myListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){/* 将myCursor移到所点击的值 */myCursor.moveToPosition(arg2);/* 取得字段_id的值 */_id = myCursor.getInt(0);/* 取得字段todo_text的值 */myEditText.setText(myCursor.getString(1));}});myListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){/* getSelectedItem所取得的是SQLiteCursor */SQLiteCursor sc = (SQLiteCursor) arg0.getSelectedItem();_id = sc.getInt(0);myEditText.setText(sc.getString(1));}public void onNothingSelected(AdapterView<?> arg0){}});}private void addTodo(){if (myEditText.getText().toString().equals(""))return;/* 添加数据到数据库 */myToDoDB.insert(myEditText.getText().toString());/* 重新查询 */myCursor.requery();/* 重新整理myListView */myListView.invalidateViews();myEditText.setText("");_id = 0;}private void editTodo(){if (myEditText.getText().toString().equals(""))return;/* 修改数据 */myToDoDB.update(_id, myEditText.getText().toString());myCursor.requery();myListView.invalidateViews();myEditText.setText("");_id = 0;}private void deleteTodo(){if (_id == 0)return;/* 删除数据 */myToDoDB.delete(_id);myCursor.requery();myListView.invalidateViews();myEditText.setText("");_id = 0;}}

更多信息请访问:http://www.orietech.com

新浪微博:西安欧锐信息科技