准备工作
写一个DbHelper,建表myitem,包含自动生成的递增id字段以及name字段与price字段,本次即对此表操作
public void onCreate(SQLiteDatabase db) {
//当表不存在时,创建表;第一字段为自增长类型
db.execSQL("CREATE TABLE IF NOT EXISTS " +
TB_NAME + "( _id integer primary key autoincrement," +
"name varchar," + "price integer"+ ")");
}
在布局文件进行相应的设计
关键代码
新建名为MyDAO的数据库访问类:
//插入记录
myDb = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("price", price);
long rowid=myDb.insert(DbHelper.TB_NAME, null, values);
//删除记录
String where = "_id=" + selId;
int i = myDb.delete(DbHelper.TB_NAME, where, null);
if (i > 0)
Log.i("myDbDemo", "数据删除成功!");
else
Log.i("myDbDemo", "数据未删除!");
//修改记录
//方法中的第三参数用于修改选定的记录
ContentValues values = new ContentValues();
values.put("name", name);
values.put("price", price);
String where="_id="+selId;
int i=myDb.update(DbHelper.TB_NAME, values, where, null);
Fragment.java:
private View view;
private MyDAO myDAO; //数据库访问对象
private ListView listView;
private List<Map<String,Object>> listData;
private Map<String,Object> listItem;
private SimpleAdapter listAdapter;
private EditText et_name; //数据表包含3个字段,第1字段为自增长类型
private EditText et_price;
private String selId=null; //选择项id
对点击的响应:
switch (v.getId()){
case R.id.bt_add:
myDAO.insertInfo(p1,p2);
break;
case R.id.bt_modify:
myDAO.updateInfo(p1,p2,selId);
Toast.makeText(getActivity(),"更新成功!",Toast.LENGTH_SHORT).show();
break;
case R.id.bt_del:
myDAO.deleteInfo(selId);
Toast.makeText(getActivity(),"删除成功!",Toast.LENGTH_SHORT).show();
et_name.setText(null);et_price.setText(null); selId=null; //提示
}
实现效果