如何在 onCreate() 方法中获取菜单项的引用

How to get the reference of the menu item in onCreate() method

我在 action bar(Wifi 图标)上有一个菜单项。我可以通过更改 wifi 状态(WIFI_ONWIFI_OFF)来更改图标,我可以使用 wifiManager.isWifiEnabled()onCreate() 方法中检查我的应用程序启动时的 wifi 状态,但问题是我无法在 onCreate 中设置菜单项的图标 method.because 最初,它将始终显示 WIFI_OFF 图标(无论 wifi 是 ON 还是 OFF),直到单击菜单项。

这是 onOptionItemSelected() 方法

case R.id.wifi_status:
            if (!isWifiEnabled) {
                item.setIcon(R.drawable.wifi_on);
                wifiManager.setWifiEnabled(true);
                isWifiEnabled = true;
            } else {
                item.setIcon(R.drawable.wifi_off);
                isWifiEnabled = false;
                wifiManager.setWifiEnabled(false);
            }
            break;

这是 activity 启动时应用程序的屏幕截图,因为无论 wifi 是 ON 还是 OFF,都可以看到操作栏上的 wifi 按钮是关闭的

您通常会在 onCreateOptionsMenu 中展开菜单时设置初始值(假设您的菜单下方是 R.manu.main_menu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);

    MenuItem wifiMenuItem = menu.findItem(R.id.wifi_status);

    // set wifiMenuItem state here based on wifiManager.isWifiEnabled()

    return true;
}