Java 单击backbutton时如何返回到mainactivity?

Java 单击backbutton时如何返回到mainactivity?,java,android,navigation-drawer,onbackpressed,Java,Android,Navigation Drawer,Onbackpressed,我有一个导航抽屉,里面有一些物品和碎片。当我单击一个项目时,显然是打开了一个片段,但是当任何片段打开时,如何将backbutton返回到mainactivity布局?如果您在片段内定义back按钮并使用片段类进行处理。您可以使用以下选项: Override public void onBackPressed(){ if(drawer.isDrawerOpen(GravityCompat.START)){ drawer.closeDrawer(GravityCompat.START

我有一个导航抽屉,里面有一些物品和碎片。当我单击一个项目时,显然是打开了一个片段,但是当任何片段打开时,如何将backbutton返回到mainactivity布局?

如果您在片段内定义back按钮并使用片段类进行处理。您可以使用以下选项:

Override
public void onBackPressed(){
  if(drawer.isDrawerOpen(GravityCompat.START)){
      drawer.closeDrawer(GravityCompat.START);
  }else {
      super.onBackPressed();
  }
}

您也可以在MainActivity本身中尝试以下操作:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {
    // do something
    return true;  // return true if back handled, false otherwise
}

return super.onKeyUp(keyCode, event);
}

您必须手动维护mainActivity Backpressed()中的所有片段,您可以使用此高级命令找到当前打开的片段。您可以替换backButton上的主片段

@Override
 public void onBackPressed() {
     if(getFragmentManager().getBackStackEntryCount() > 0) {
         getFragmentManager().popBackStack();
     } else if(drawer.isDrawerOpen(GravityCompat.START)){
         drawer.closeDrawer(GravityCompat.START);
     } else {
         super.onBackPressed(); 
     } 
 }