修复代码中的java.lang.NullPointerException



我在上下文菜单的代码中得到了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;
}

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

view 不会传递给 onContextItemSelected

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

此代码无济于事,因为当视图是buttonmenuInfo null。Android 文档说"menuInfo 有关应显示上下文菜单的项目的额外信息。此信息将根据v的类别而有所不同"。当v是一种ListView menuInfo的方法时,就可以了。当它是Button时,它不起作用。

onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)中,View v是产生上下文菜单的button。将v复制到全局View可移动的,并在需要查看生成上下文菜单的按钮的位置使用该。

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

相关内容

  • 没有找到相关文章

最新更新