MenuItem中使用app:actionLayout(Switch)造成空指针异常

使用情况:

MenuItem中使用了app:actionLayout



     

menu_switch对应的布局中包含了一个Switch控件



    


错误原因

直接使用错误方式(findViewById)获取Switch,导致获取失败,使用时空指针异常

解决办法

使用正确的方式(menu-->menuitem-->actionview-->switch)获取Switch

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    MenuItem switchItem = menu.findItem(R.id.action_open_close_nfc);
   mSwitch = (Switch) switchItem.getActionView().findViewById(R.id.switchForActionBar);
    if (mNfcAdapter != null) {
        mSwitch.setChecked(mNfcAdapter.isEnabled());
    }
    return true;
}

你可能感兴趣的:(MenuItem中使用app:actionLayout(Switch)造成空指针异常)