2
您好我有一个从ContextMenu获取ExpandableListView项目的id的问题,我需要从我的数据库(使用内容提供者)删除条目。从ContextMenu获取ExpandableListView的选定项目
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add(Menu.NONE, MENU_EDIT, Menu.NONE, "Edit");
menu.add(Menu.NONE, MENU_REMOVE, Menu.NONE, "Remove");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) menuItem.getMenuInfo();
switch (item.getItemId()) {
case MENU_EDIT:
editEntry(info.id);
return true;
case MENU_REMOVE:
deleteEntry(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
private void deleteEntry(long id) {
Uri uri = Uri.parse(DatabaseManager.CONTENT_URI + "/" + id);
getActivity().getContentResolver().delete(uri, null, null);
}
的文本菜单正显示出,但是当我点击“删除”什么也没有发生。你能告诉我该怎么办?
你没有看到从'ListView'和/或供应商删除的项目?你有没有跟踪你的提供者在触发'delete()'时发生了什么?您可能还想发布提供商的删除方法。 – Luksprog
它工作得很好用的ListView – keysersoze
哦,我忘了我的适配器上调用notifydatasetchanged - 该项目确实删除,但...它不是我点击的项目。当我尝试删除组中的最后一项时,它将删除组中的第一项。为什么? – keysersoze