0

我正在NullPointerException输入上下文菜单的代码。这是 onCreateContextmenu 方法

public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.add(0, MENU_EDIT, 0, "Edit");
    menu.add(0, MENU_DELETE, 0, "Delete");
}

我在 long buttonId = info.id;下面的代码中收到错误

public boolean onContextItemSelected(MenuItem item) {

   AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    long buttonId = info.id;
    switch (item.getItemId()) {
        case MENU_EDIT:
            function1(buttonId);
            break;
        case MENU_DELETE:
            function2(buttonId);
            break;
    }
    return true;
}

有人可以帮我解决这个问题吗

4

1 回答 1

1

view不传递给onContextItemSelectedand

AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); long buttonId = info.id;

这段代码没有帮助,因为当 viewmenuInfo是. Android 文档说“menuInfo 有关应显示上下文菜单的项目的额外信息。此信息将根据“的类别而有所不同。什么时候是一种方法是好的。当它是 a时,它不起作用。nullbuttonvvListView menuInfoButton

onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)中,View vbutton生成上下文菜单的。复制v到全局View变量并在需要查看生成上下文菜单的按钮的位置使用它。

如何获取触发上下文菜单的按钮视图?

于 2013-11-13T07:11:13.580 回答