无法使用抽屉的动作栏项目Android

问题描述:

我的动作栏项目正常工作,直到我添加了菜单抽屉,现在当第一次显示活动时,菜单上的切换按钮不起作用,并且一旦抽屉打开它开始工作绝对好。虽然我没有在我的onDrawerOpened方法中调用它。无法使用抽屉的动作栏项目Android

// ----------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

你真的需要onOptionsItemSelected在drawertoggle? – Ramesh

+0

好吧,当抽屉打开或任何碎片时,我没有任何物品需要显示,这些物品只出现在主要活动 –

你应该叫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); 
} 

(不能完全确定,它可能解决你的问题,但它是值得的尝试)

+0

谢谢,但这并没有解决我的问题,但会牢记在心。 –