【问题标题】:Exit from App only from the 1st fragment using onBackPressed使用 onBackPressed 仅从第一个片段退出 App
【发布时间】:2016-09-20 01:35:13
【问题描述】:
我的 MainActivity 在导航抽屉中有 6 个片段。现在,每当我处于 6 个片段中的任何一个片段中时,如果我按下后退按钮,我的应用程序就会退出。我只想从第一个片段中退出。如果我在其他片段中,那么如果我按回,我希望它到达第一个片段,如果我再次按回,我想从那里退出。
当片段不在第一个位置时,我必须将片段替换为第一个片段。我知道。但是我究竟如何才能在 onBackPressed 中实现整体呢?
请帮忙 !!提前致谢。
【问题讨论】:
标签:
android
android-fragments
navigation-drawer
onbackpressed
【解决方案1】:
覆盖onBackPress 方法并添加此代码;
public void onBackPressed(){
int count = getFragmentManager().getBackStackEntryCount(); // if stack count is 0, it means no fragment left to pop back stack
if (count = 0) {
finish();
}
}
【解决方案2】:
您可以通过实例获取片段名称,我们可以检查它是否在主片段中。将此代码粘贴到主活动类的 onBackPressed 方法中。
Fragment f = getSupportFragmentManager().findFragmentById(R.id.frame_container);
/**
* Compare the instances based on fragment name to change the action bar
*/
if (f instanceof HomeFragment) {
finish();
System.exit(0);
} else {
super.onBackPressed();
}