不适用于Drawer Android的操作栏项目

时间:2015-07-21 11:45:42

标签: android menuitem togglebutton drawer

我的操作栏项目工作正常,直到我添加了一个菜单抽屉,现在当首次显示活动时,菜单上的切换按钮不起作用,一旦抽屉打开,它就开始正常工作。虽然我没有在我的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);
        }

}

一旦我打开和关闭抽屉,开关工作完美! 有人可以帮忙吗? 提前谢谢。

1 个答案:

答案 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);
}

(不完全确定它可以解决您的问题,但值得一试)