Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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_Navigation Drawer_Android Navigationview - Fatal编程技术网

Android 如何在进入新活动类之前正确关闭导航

Android 如何在进入新活动类之前正确关闭导航,android,navigation-drawer,android-navigationview,Android,Navigation Drawer,Android Navigationview,在转到新活动之前,我想隐藏NavigationView。此时,在我的应用程序中,导航抽屉未正确隐藏,尚未开始新活动。所以我想正确地隐藏导航,然后转到新的活动。我没有在活动中使用片段数。我正在使用带有导航抽屉的总活动 mDrawerLayout.closeDrawers(); 如果要关闭抽屉,然后启动另一个活动请使用处理程序添加延迟 new Handler().postDelayed(new Runnable() { @Override publ

在转到新活动之前,我想隐藏
NavigationView
。此时,在我的应用程序中,导航抽屉未正确隐藏,尚未开始新活动。所以我想正确地隐藏导航,然后转到新的活动。我没有在活动中使用片段数。我正在使用带有导航抽屉的总活动

mDrawerLayout.closeDrawers();
如果要关闭抽屉,然后启动另一个
活动
请使用
处理程序添加延迟

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                //launch activity here
            }
        },TIME_IN_MILLI_SEC)

选择项目后,您可以尝试关闭抽屉:

navigationView.setNavigationItemSelectedListener(
      new NavigationView.OnNavigationItemSelectedListener() {
          @Override
          public boolean onNavigationItemSelected(MenuItem menuItem) {
              menuItem.setChecked(true);
              //saving the id of the item selected
              itemSelected = menuItem.getItemId();
              mDrawerLayout.closeDrawers();
              return true;
          }
});
然后可以使用
抽屉布局.DrawerListener
。在DrawerClosed上,您可以开始您的活动

@Override    
public void onDrawerClosed(View drawerView) {
        if (itemSelected >= 0) {
            Class activityClass = null;
            switch (itemSelected) {
                case R.id.itemId:
                    activityClass = MyActivity.class;
                    break;
                //same for any other item
            }
            if (activityClass != null) {
                Intent intent = new Intent(this, activityClass);
                startActivity(intent);
                finish();
            }
        }
    }