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