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

时间:2018-01-15 18:45:22

标签: android android-menu wifimanager

我在action bar(Wifi图标)上有一个菜单项。我可以通过改变wifi的状态(WIFI_ONWIFI_OFF)更改图标,我可以使用onCreate()wifiManager.isWifiEnabled()方法中检查我的应用启动时的wifi状态,但问题是我无法在onCreate方法中设置菜单项的图标。最初,它会始终显示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;

这是活动开始时应用程序的屏幕截图,因为可以看到操作栏上的wifi按钮关闭,无论wifi是ON还是OFF Screenshot of the app when activity starts

1 个答案:

答案 0 :(得分:2)

当您在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;
}