【android】listview动态更新(与数据库之间的交道)

自己转战android已经有一段时间了。废话不多说了,开始吧。
listview大家应该不陌生。现在我将自己遇到的动态更新问题进行总结一下。
上代码是最好的。
listview绑定simplecursoradapter

ListView lv = (ListView) this.findViewById(R.id.listView);

SimpleCursorAdapter sca = new SimpleCursorAdapter(this, R.layout.listmsg, cur, new String[]{"_id","name","val"},
new int[]{R.id.textViewID,R.id.textViewName,R.id.textViewVal});
lv.setAdapter(sca);

cur的代码:
Cursor cur = dao.show();

	public Cursor show(){
db = dbh.getReadableDatabase();
Cursor cur = db.query("person",null, null, null, null, null, null);
// cur.close();
return cur;
}

其中layout的listmsg中三个控件R.id.textViewID,R.id.textViewName,R.id.textViewVal;
数据库中"_id","name","val"(建议大家主键都采用_id的形式,原因我似乎不太记得了,我还做过测试,android的默认主键就是_id)
然后是listview的点击事件,这个事件最重要的是找到删除的_id。
代码如下:
        lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
selectedID = position;
int i = sca.getCursor().getColumnIndex("_id");
// System.out.println("id:"+cur.getString(i));
delID = cur.getString(i);
}

});


下面是最重要的动态更新:
        delete.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println(selectedID+1);
dao.redelete(delID);
cur.requery();
sca.notifyDataSetChanged();
selectedID = 99999;
}
});

redelete的代码:
	public void redelete(String s){
db = dbh.getWritableDatabase();
db.delete("person", "_id=?", new String[]{s});

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值