Android Notify onbackpressed()从中调用片段
我有一个活动,我添加了一个ListFragment。当我单击一个按钮时,一个新的片段将替换ListFragment。我使用addTobackStack(null),所以当我按下后退按钮时,我将结束到ListFragment。如果用户没有按back,而是单击了一个按钮,那么他将转到另一个新片段。从那里,我希望用户返回ListFragment,因此在进行fragmentTransaction时,我不使用addTobackStack() 模式是:Android Notify onbackpressed()从中调用片段,android,android-fragments,Android,Android Fragments,我有一个活动,我添加了一个ListFragment。当我单击一个按钮时,一个新的片段将替换ListFragment。我使用addTobackStack(null),所以当我按下后退按钮时,我将结束到ListFragment。如果用户没有按back,而是单击了一个按钮,那么他将转到另一个新片段。从那里,我希望用户返回ListFragment,因此在进行fragmentTransaction时,我不使用addTobackStack() 模式是: ListFragment -------> Ga
ListFragment -------> GameFragment --------> EndFragment
从GameFragment
我可以回到ListFragment
,从EndFragment
我必须转到ListFragment
,而不是GameFragment
所以我猜我必须在我的活动中重写onBackPressed(),所以当我在EndFragment
上时,我要对listframent
进行事务处理
问题是当我重写onBackPressed()时,我不知道如何引用EndFragment
(除非有更好的方法执行此操作…)
onBackPressed()我现在使用的代码:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
Log.i("FINISH", "Finish");
finish();
} else {
Log.i("FINISH", "POP STACK");
getSupportFragmentManager().popBackStack();
}
}
更好的方法是从backbackback中删除AF
活动,它保存所有以前的活动,并在back按钮中查找以前的活动
为此,在您的AF
活动中,将FLAG\u activity\u CLEAR\u TOP
标志添加到您的意图中,如下所示:
Intent intent = new Intent(this, BF.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
另一个选项是覆盖按下后退按钮时发生的情况。重写onBackPressed()
方法:
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(this, BF.class);
goToMainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(goToMainActivity);
}
它们不是活动。它们是碎片。很抱歉我的帖子引起了误会,我做了一些编辑,这样我的问题就更容易理解了。