Android SQLLite 的基礎操作

用一個聯繫人管理APP練習SQLite的 增刪改查

代碼託管地址:

git@osc:http://git.oschina.net/Buynow96/ContacterManage

核心代碼:

繼承SQLiteOpenHelper

public class MyOpenHelper extends SQLiteOpenHelper {
    public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE contacter (_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),phone VARCHAR(20))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

數據庫的插入:

/**
     * 數據庫的插入 
     * 將兩個EditView(Name 和 Phone)中的數據添加到數據庫中
     * @param v
     */
    public void save (View v){
        name=et_name.getText().toString();
        phone=et_phone.getText().toString();
        /***************************
         **數據庫的插入 insert
         ***************************/
        ContentValues cv=new ContentValues();
        cv.put("name",name);
        cv.put("phone",phone);
        db.insert("contacter", "", cv);
        Toast.makeText(InsertDataActivity.this,"添加成功",Toast.LENGTH_SHORT).show();
    }

數據庫的查詢和刪除:

 /**
     * 顯示從數據庫讀取的聯繫人結果 數據庫Query
     * 循環動態創建TextView
     * 爲每一條記錄前添加一個刪除按鍵 對數據庫內數據delete
     * 長按單條聯繫人記錄進入修改 對數據庫內數據Updata
     * 短按單條聯繫人 轉到虛擬按鍵 撥號或發送短信
     * 
     */
    public void disContacter() {
        layout.removeAllViews();
        /*********************************
         *數據庫的查詢
         *********************************/
        Cursor cursor = db.query("contacter", new String[]{"name", "phone", "_id"}, null, null, null, null, "name");
        int i = 1;
        while (cursor.moveToNext()) {
            final String name = cursor.getString(0);
            final String phone = cursor.getString(1);
            final String _id = cursor.getString(2);
            TextView tv = new TextView(MainActivity.this);
            tv.setText("          " + (i++) + "| " + name + "  " + phone);
            LinearLayout layout1 = new LinearLayout(MainActivity.this);
            layout1.setOrientation(LinearLayout.HORIZONTAL);
            Button button = new Button(MainActivity.this);
            button.setText("刪除");
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                /*********************************
                 *數據庫的刪除
                 *********************************/
                    db.delete("contacter", "_id=?",
                            new String[]{_id});
                    disContacter();
                }
            });
            tv.setLongClickable(true);
            tv.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    Intent intent = new Intent(MainActivity.this, UpdataDataActivity.class);
                    intent.putExtra("name", name);
                    intent.putExtra("phone", phone);
                    intent.putExtra("_id", _id);
                    startActivity(intent);
                    return false;
                }
            });
            tv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone));
                    startActivity(intent);
                }
            });
            layout1.addView(button);
            layout1.addView(tv);
            layout.addView(layout1);

        }
    }

數據庫的升級:

public void save(View v){
        ContentValues cv=new ContentValues();
        cv.put("name",et_name.getText().toString());
        cv.put("phone",et_phone.getText().toString());
        db.update("contacter", cv, "_id=?", new String[]{_id});
        Toast.makeText(UpdataDataActivity.this,"更改成功",Toast.LENGTH_SHORT).show();
    }

APP截圖:

添加聯繫人:

添加聯繫人

讀取數據庫的聯繫人數據:

讀取數據庫的聯繫人數據

升級聯繫人數據:

升級聯繫人數據

刪除聯繫人數據:

刪除聯繫人數據1
刪除聯繫人數據2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章