Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带碎片的导航抽屉_Android_Android Fragments_Navigation Drawer_Back Stack_Onbackpressed - Fatal编程技术网

Android 带碎片的导航抽屉

Android 带碎片的导航抽屉,android,android-fragments,navigation-drawer,back-stack,onbackpressed,Android,Android Fragments,Navigation Drawer,Back Stack,Onbackpressed,我的应用程序使用一个带有2个部分的导航抽屉 第1节:角色列表、收藏夹列表 第2节:所有字符的列表 字符列表具有与导航抽屉中的第2节相同的字符选择。从第1节中的“字符列表”或“收藏夹列表”中选择字符,或从抽屉中的列表中选择字符,将打开字符页面 当我在角色页面上时,我希望“上一步”按钮可以让用户返回角色列表或收藏夹列表(以上次访问的为准),但决不能返回到上一个角色页面(如果是从导航抽屉中选择的) 我的抽屉项目侦听器: public void getDrawerItemClickListener()

我的应用程序使用一个带有2个部分的导航抽屉

第1节:角色列表、收藏夹列表

第2节:所有字符的列表

字符列表具有与导航抽屉中的第2节相同的字符选择。从第1节中的“字符列表”或“收藏夹列表”中选择字符,或从抽屉中的列表中选择字符,将打开字符页面

当我在角色页面上时,我希望“上一步”按钮可以让用户返回角色列表或收藏夹列表(以上次访问的为准),但决不能返回到上一个角色页面(如果是从导航抽屉中选择的)

我的抽屉项目侦听器:

public void getDrawerItemClickListener() {
        mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                mDrawerLayout.closeDrawers();
                int selection = menuItem.getItemId();
                String name = menuItem.getTitle().toString();


                if(selection == R.id.nav_home) {
                    Fragment myFragment = new HomeFragment();
                    replaceFragment(myFragment);
                }

                if(selection == R.id.nav_fav) {
                    Fragment myFragment = new FavFragment();
                    replaceFragment(myFragment);
                }


                for(int i = 0; i < characters.size(); i++) {
                    if(characters.get(i).getName().equals(name))
                    {
                        Fragment myFragment = new TabFragment();
                        myFragment.setArguments(createCharacterBundle(characters.get(i)));
                        replaceFragment(myFragment);
                        break;
                    }
                }
                return false;
            }

        });
    }
以及我的OnBackpress方法:

public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }
public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }
mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {

            }

            @Override
            public void onDrawerOpened(View drawerView) {
                mDrawerOpen = true;
            }

            @Override
            public void onDrawerClosed(View drawerView) {
                mDrawerOpen = false;
            }

            @Override
            public void onDrawerStateChanged(int newState) {

            }
        });



public void onBackPressed() {
   if (mDrawerOpen) {
        mDrawerLayout.closeDrawer(DrawableItemResourceID);
        return;
    } else {
        super.onBackPressed();
    }
}