[英]Handle `BackPressed` when we only have a fragment
I have an Activity
and it has only one Fragment
. 我有一个
Activity
,它只有一个Fragment
。 I want to handle backpressed
functionality. 我想处理
backpressed
功能。 When user presses back, program should go back to Activity
. 当用户按下时,程序应返回到
Activity
。 I know this is very simple but I have tried some solutions that are mentioned on Stackoverflow, but none of them worked. 我知道这很简单,但是我尝试了Stackoverflow上提到的一些解决方案,但是没有一个起作用。 For example I tried this:
例如,我尝试了这个:
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
//additional code
} else {
getFragmentManager().popBackStack();
}
}
As I understand all you want to do is when users press Back key on MainActivity
据我了解,您要做的就是用户在
MainActivity
上按Back键
MainActivity
will be finished. MainActivity
将完成。 Change your code to 将您的代码更改为
private boolean ignoredFirstBackPressed = false;
@Override
public void onBackPressed() {
int count = getFragmentManager().getBackStackEntryCount();
if (count == 1) {
// If there is only one fragment in back stack
if (!ignoredFirstBackPressed) {
// additional code
ignoredFirstBackPressed = true;
} else {
finish();
}
} else {
getFragmentManager().popBackStack(); // or super.onBackPressed()
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.