EX05_05.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:4k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex05_05;
  2. import android.app.Activity;
  3. import android.database.Cursor;
  4. import android.database.sqlite.SQLiteCursor;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.widget.AdapterView;
  10. import android.widget.EditText;
  11. import android.widget.ListView;
  12. import android.widget.SimpleCursorAdapter;
  13. public class EX05_05 extends Activity
  14. {
  15.   private ToDoDB myToDoDB;
  16.   private Cursor myCursor;
  17.   private ListView myListView;
  18.   private EditText myEditText;
  19.   private int _id;
  20.   protected final static int MENU_ADD = Menu.FIRST;
  21.   protected final static int MENU_EDIT = Menu.FIRST + 1;
  22.   protected final static int MENU_DELETE = Menu.FIRST + 2;
  23.   @Override
  24.   public boolean onOptionsItemSelected(MenuItem item)
  25.   {
  26.     super.onOptionsItemSelected(item);
  27.     switch (item.getItemId())
  28.     {
  29.       case MENU_ADD:
  30.         this.addTodo();
  31.         break;
  32.       case MENU_EDIT:
  33.         this.editTodo();
  34.         break;
  35.       case MENU_DELETE:
  36.         this.deleteTodo();
  37.         break;
  38.     }
  39.     return true;
  40.   }
  41.   @Override
  42.   public boolean onCreateOptionsMenu(Menu menu)
  43.   {
  44.     super.onCreateOptionsMenu(menu);
  45.     /* 添加三个MENU */
  46.     menu.add(Menu.NONE, MENU_ADD, 0, R.string.strAddButton);
  47.     menu.add(Menu.NONE, MENU_EDIT, 0, R.string.strEditButton);
  48.     menu.add(Menu.NONE, MENU_DELETE, 0, R.string.strDeleteButton);
  49.     return true;
  50.   }
  51.   /** Called when the activity is first created. */
  52.   @Override
  53.   public void onCreate(Bundle savedInstanceState)
  54.   {
  55.     super.onCreate(savedInstanceState);
  56.     setContentView(R.layout.main);
  57.     myListView = (ListView) this.findViewById(R.id.myListView);
  58.     myEditText = (EditText) this.findViewById(R.id.myEditText);
  59.     myToDoDB = new ToDoDB(this);
  60.     /* 取得DataBase里的数据 */
  61.     myCursor = myToDoDB.select();
  62.     /* new SimpleCursorAdapter并将myCursor传入,
  63.        显示数据的字段为todo_text */
  64.     SimpleCursorAdapter adapter = 
  65.     new SimpleCursorAdapter
  66.     (this, R.layout.list, myCursor, new String[]
  67.         { ToDoDB.FIELD_TEXT }, new int[]
  68.         { R.id.listTextView1 });
  69.     myListView.setAdapter(adapter);
  70.     /* 将myListView添加OnItemClickListener */
  71.     myListView.setOnItemClickListener
  72.     (new AdapterView.OnItemClickListener()
  73.     {
  74.       @Override
  75.       public void onItemClick
  76.       (AdapterView<?> arg0, View arg1, int arg2, long arg3)
  77.       {
  78.         /* 将myCursor移到所点击的值 */
  79.         myCursor.moveToPosition(arg2);
  80.         /* 取得字段_id的值 */
  81.         _id = myCursor.getInt(0);
  82.         /* 取得字段todo_text的值 */
  83.         myEditText.setText(myCursor.getString(1));
  84.       }
  85.     });
  86.     myListView.setOnItemSelectedListener
  87.     (new AdapterView.OnItemSelectedListener()
  88.     {
  89.       @Override
  90.       public void onItemSelected
  91.       (AdapterView<?> arg0, View arg1, int arg2, long arg3)
  92.       {
  93.         /* getSelectedItem所取得的是SQLiteCursor */
  94.         SQLiteCursor sc = (SQLiteCursor) arg0.getSelectedItem();
  95.         _id = sc.getInt(0);
  96.         myEditText.setText(sc.getString(1));
  97.       }
  98.       
  99.       @Override
  100.       public void onNothingSelected(AdapterView<?> arg0)
  101.       {
  102.       }
  103.     });
  104.   }
  105.   
  106.   private void addTodo()
  107.   {
  108.     if (myEditText.getText().toString().equals(""))
  109.       return;
  110.     /* 添加数据到数据库 */
  111.     myToDoDB.insert(myEditText.getText().toString());
  112.     /* 重新查询 */
  113.     myCursor.requery();
  114.     /* 重新整理myListView */
  115.     myListView.invalidateViews();
  116.     myEditText.setText("");
  117.     _id = 0;
  118.   }
  119.   private void editTodo()
  120.   {
  121.     if (myEditText.getText().toString().equals(""))
  122.       return;
  123.     /* 修改数据 */
  124.     myToDoDB.update(_id, myEditText.getText().toString());
  125.     myCursor.requery();
  126.     myListView.invalidateViews();
  127.     myEditText.setText("");
  128.     _id = 0;
  129.   }
  130.   private void deleteTodo()
  131.   {
  132.     if (_id == 0)
  133.       return;
  134.     /* 删除数据 */
  135.     myToDoDB.delete(_id);
  136.     myCursor.requery();
  137.     myListView.invalidateViews();
  138.     myEditText.setText("");
  139.     _id = 0;
  140.   }
  141. }