【发布时间】:2012-01-27 17:43:20
【问题描述】:
我知道这个问题被问了很多,但我找到的许多答案都不令人满意。
我有一个通过数据库显示列表的 Baseadapter。信息通过游标从数据库传递到列表,游标将游标添加到数组列表,然后填充列表视图。我想通过上下文菜单删除一个列表项,并将其从列表视图和数据库中删除。目前,我正在使用adaptercontextmenuinfo 对象来获取我传递给数据库类中的delete 方法的位置和/或id,但是info.id 与数据库_id 不对应。目前,我能够成功地从 listadapter 中删除行条目,但不能从数据库中删除。任何帮助将非常感激。 (注意:我的数据库有 3 列,第一列是 _id) 上下文菜单 java:
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle() == "Delete"){ //if "delete" is selected
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
dba.deleteRow(info.id);
DATA.remove(info.position);
adapter.notifyDataSetChanged();
数据库删除行方法:
public void deleteRow(long rowId){
db = dbhelper.getWritableDatabase();
try{
db.delete(Constants.TABLE_NAME, Constants.KEY_ID + "="+rowId,null);
}catch(Exception e){
}
}
我知道这里涉及很多代码。如果你想要更多,请告诉我。感谢您的帮助!
【问题讨论】: