oncreate选项菜单的片段stoppng活动oncreateoptionmenu

时间:2015-07-13 10:29:50

标签: android android-fragments oncreateoptionsmenu

我有一个活动和五个片段。我在选项菜单中有一个导航抽屉按钮,可以帮助我浏览片段。但是我想将一个片段更改为后退按钮。当前后退按钮工作正常。但是在一起随着活动选项菜单也工作,它将导航抽屉。如何停止?

这是我的抽屉

MainActivity

    @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_settings:
            FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
            fragmentTransaction.replace(R.id.container, new SettingsFragment());
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
            break;       
        case android.R.id.home:
            mDrawerLayout.openDrawer(GravityCompat.START);
            break;
        default:
            break;
    }
    return super.onOptionsItemSelected(item);
}

片段

    @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            getFragmentManager().popBackStack();
            return true;
        default:
            break;
    }
    return super.onOptionsItemSelected(item);
}

实际上,当我在两个选项菜单中选择选项菜单主页代码时,我只想让片段选项菜单工作。我怎么能阻止它?请帮忙

1 个答案:

答案 0 :(得分:1)

首先,在您的活动中,创建一个标志以检查主页按钮是否为后退按钮:isBackShow = false。然后,在onOptionsItemSelected

 case android.R.id.home: // show drawer or pop backstack base on flag
        if(isBackShow)
        getFragmentManager().popBackStack();
        mDrawerLayout.openDrawer(GravityCompat.START);
        return true;

SettingsFragment中,您可以在Activity或您想要的某个地方更改父亲onCreateView的标记:

if(getActivity() instanceof YourFatherActivity){
        ((YourFatherActivity)getActivity()).isBackShow = true;
        // You can also change drawer icon to back icon here.
}

我不是检查代码但是,AFAIK这段代码会起作用。希望这有帮助。