• Android 數據庫開發實例

    2
    Android SQLite Java C/C++ 21308 次瀏覽
    我們今天給大家分享的主要就是我們在編程當中必須用到的東西,那就是數據庫,這個對我們來說是非常重要的,那么我們通過這個小的例子就會明白了,數據庫其實也不是那么難的,那么我們就來看看數據庫的主要代碼:
    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;  
    }  
    }  

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色