我的操作栏项目工作正常,直到我添加了一个菜单抽屉,现在当首次显示活动时,菜单上的切换按钮不起作用,一旦抽屉打开,它就开始正常工作。虽然我没有在我的onDrawerOpened方法中调用它。
// ----------For Options Menu-------------------
@Override
public boolean onCreateOptionsMenu(Menu menu) {
try {
super.onCreateOptionsMenu(menu);
menu.clear();
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_screen_menu, menu);
menuitem1 = menu.findItem(R.id.menu_item1);
menuitem2 = menu.findItem(R.id.menu_item2);
final Switch getView = (Switch) menuitem2.getActionView();
getView.setChecked(false);
getView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0,
boolean isSelected) {
if (isSelected) {
method1();
} else {
method2();
}
}
});
} catch (Exception e) {
e.printStackTrace();
Log.e("OnCreateOptionsMenu", "exception", e);
}
mOptionsMenu = menu;
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.menu_item1: {
return true;
}
case R.id.menu_item2: {
return true;
}
default:
return super.onOptionsItemSelected(item);
}
}
一旦我打开和关闭抽屉,开关工作完美! 有人可以帮忙吗? 提前谢谢。
答案 0 :(得分:1)
您在宣传菜单后应该致电super.onCreateOptionsMenu(menu)
(如文档中所示:http://developer.android.com/guide/topics/ui/actionbar.html)
我会将您的代码更改为:
// ----------For Options Menu-------------------
@Override
public boolean onCreateOptionsMenu(Menu menu) {
try {
menu.clear();
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_screen_menu, menu);
(...)
return super.onCreateOptionsMenu(menu);
}
(不完全确定它可以解决您的问题,但值得一试)