日期:2014-05-16  浏览次数:20447 次

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();
?