当我的应用程序中发生某些事情时,我试图启用/禁用刷新按钮,但我得到一个空指针异常,我无法找出原因。我正在根据情况将布尔值addingRefreshremovingRefresh设置为true,然后调用invalidateOptionsMenu()来启用或禁用按钮,但是菜单项返回空值。我在网上搜索了一下原因,但什么也找不到。
onCreateOptionsMenu()的代码(调用invalidateoptionsmenu()时调用)

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (addingRefresh) {
        //below line as well as other similar line cause exceptions
        menu.findItem(R.id.action_refresh).setEnabled(true);
        addingRefresh = false;
    } else if (removingRefresh) {
        menu.findItem(R.id.action_refresh).setEnabled(false);
        removingRefresh = false;
    } else if (addingLoading) {

    }
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

谢谢你的帮助!

最佳答案

下面是一些您要完成的清理代码:

private MenuItem mMenuItem;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    final MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    mMenuItem = menu.findItem(R.id.action_refresh)
    return true;
}

private void setMenuItemEnabled(boolean enabled) {
    mMenuItem.setEnabled(enabled);
}

希望能有帮助!

07-27 20:40