我想要的是在自定义菜单项中获取对Togglebutton的引用。
菜单为R.menu.main,自定义动作布局为R.id.action_rotation_switch,实际按钮为R.id.rotationLockSwitch。这几乎是正确的。但是当我启动活动时,menu.findItem(R.id.action_rotation_switch);返回一个空指针。 怎么可能? 使用这两个回调的正确方法是什么?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen())
{
getMenuInflater().inflate(R.menu.main, menu);
restoreActionBar();
return true;
}
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_rotation_switch);
View v = item.getActionView();
panRotSwitch = (ToggleButton)v.findViewById(R.id.rotationLockSwitch);
panRotSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sketchBoardFragment.lockRotation(panRotSwitch.isChecked());
}
});
return super.onPrepareOptionsMenu(menu);
}