用一個聯繫人管理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截圖:
添加聯繫人:
讀取數據庫的聯繫人數據:
升級聯繫人數據:
刪除聯繫人數據: