Android 如何在上下文菜单中获取ListView项id

Android 如何在上下文菜单中获取ListView项id,android,listview,multichoiceitems,Android,Listview,Multichoiceitems,我有一个listView,它执行以下操作: @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Intent i = new Intent(this, TodoDetailActivity.class); Uri todoUri = Uri.parse(MyTodoCo

我有一个listView,它执行以下操作:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Intent i = new Intent(this, TodoDetailActivity.class);
    Uri todoUri = Uri.parse(MyTodoContentProvider.CONTENT_URI + "/" + id);
    i.putExtra(MyTodoContentProvider.CONTENT_ITEM_TYPE, todoUri);
    Toast.makeText(getApplicationContext(),""+id,Toast.LENGTH_SHORT).show();

    startActivity(i);
}
注意,我使用一个长id传递给内容提供商,以打开一个新活动并编辑与该id关联的“Todo”

现在我正试图通过上下文菜单删除“待办事项”

但是,我不知道如何获取项目id:

this.getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
        @Override
        public void onItemCheckedStateChanged(ActionMode actionMode, int i, long l, boolean b) {
            //Not Used
        }

        @Override
        public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
            MenuInflater inflater = actionMode.getMenuInflater();
            inflater.inflate(R.menu.context_menu, menu);
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
            switch (menuItem.getItemId()) {
                case R.id.menu_delete_multiple:
                    for (int i = adapter.getCount() - 1; i >= 0; i--) {
                        if (getListView().isItemChecked(i)) {
                            Toast.makeText(getApplicationContext(),""+i,Toast.LENGTH_SHORT).show();
                            AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuItem.getMenuInfo();
                            Uri uri = Uri.parse(MyTodoContentProvider.CONTENT_URI+"/"+ what'sTHEIDE???);
                            getContentResolver().delete(uri, null, null);
                        }
                    }
                    fillData();
                    actionMode.finish(); // Action picked, so close the CAB
                    return true;
                default:
                    return false;
            }
        }

        @Override
        public void onDestroyActionMode(ActionMode actionMode) {
            actionMode = null;
        }
    });
在我的
onActionItemClicked()
区域中,我假设我可以从列表视图中获得相同的“长id”。我必须调用什么才能将id传递到
onActionItemClicked()


作为一名android初学者,我有点目瞪口呆。

原来我想得太多了

long mId = getListView().getAdapter().getItemId(i);
Uri uri = Uri.parse(MyTodoContentProvider.CONTENT_URI+"/"+ mId);
getContentResolver().delete(uri, null, null);
不需要复杂的AdapterView方法。info.id一直返回null,因为info为null,所以我只是检索了单击的列表视图项的id,并将其传递给内容提供商进行处理