当我单击后退按钮时,如何返回mainactivity?

时间:2018-12-29 01:56:57

标签: java android navigation-drawer onbackpressed

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

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

3 个答案:

答案 0 :(得分:0)

如果要在片段内定义后退按钮并使用片段类进行处理。您可以使用:

@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);
}

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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