日期:2014-05-16 浏览次数:20568 次
[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();
?