当我在上下文操作栏中点击删除时,我试图从数据库中删除一行。但是我无法获得长期点击的项目的ID。我尝试使用setTag()
通过id,但是在长按项目时强制关闭应用程序。
这是我的代码:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
startActionMode(modeCallBack);
mActionMode.setTag(id);
view.setSelected(true);
return true;
}
});
这是onActionItemClicked
:
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.item_delete:
Mydatabase.execSQL("delete from TableName where _id="
+ mode.getTag());
mode.finish();
break;
}
return true;
}
};
答案 0 :(得分:1)
如果您有数组中的项目,并且您长时间点击传递到
的位置 public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id)
应该是数组中项目的索引,假设您在其中存储了ID,您只需将该ID传递给将从数据库中删除该项目的SQL查询。