Android后退按钮和片段活动

Android后退按钮和片段活动,android,android-fragments,Android,Android Fragments,我有一个使用片段的活动,当第一次创建该活动时,它会显示第一个未添加到后堆栈的片段,因为当用户按back时,我不希望有一个空的活动 之后加载的片段被添加到后堆栈中 所以我有我想要的行为,除了:用户可以打开片段并按back返回到上一个片段,直到他们到达第一个片段,因为如果此时按back,活动将关闭,这是我不想要的 因此,我想知道一个好的解决方案,以防止按下后退按钮,但只有在显示第一个片段时才按下。解决方法如下: @Override public void onBackPressed() {

我有一个使用片段的活动,当第一次创建该活动时,它会显示第一个未添加到后堆栈的片段,因为当用户按back时,我不希望有一个空的活动

之后加载的片段被添加到后堆栈中

所以我有我想要的行为,除了:用户可以打开片段并按back返回到上一个片段,直到他们到达第一个片段,因为如果此时按back,活动将关闭,这是我不想要的

因此,我想知道一个好的解决方案,以防止按下后退按钮,但只有在显示第一个片段时才按下。

解决方法如下:

@Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount()> 0) {
        super.onBackPressed();
    }
}
从activity调用新片段时,Add.addToBackStacknull

-将onBackPressed添加到您的活动中

   @Override
public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() == 0) {
        this.finish();
    } 
else {
        getFragmentManager().popBackStack();
    }
}

在活动类中,在onBackPressed方法中添加以下代码

@Override
public void onBackPressed() {
int backstack = getSupportFragmentManager().getBackStackEntryCount();

 if (backstack > 0) {
     getSupportFragmentManager().popBackStack();
 }
  else{
      super.onBackPressed();
      //System.exit(0);
  }
}
希望这有帮助

@Override
public void onBackPressed() {
int backstack = getSupportFragmentManager().getBackStackEntryCount();

 if (backstack > 0) {
     getSupportFragmentManager().popBackStack();
 }
  else{
      super.onBackPressed();
      //System.exit(0);
  }
}