使用 onBackPressed 仅从第一个片段退出 App
Posted
技术标签:
【中文标题】使用 onBackPressed 仅从第一个片段退出 App【英文标题】:Exit from App only from the 1st fragment using onBackPressed 【发布时间】:2016-09-20 01:35:13 【问题描述】:我的 MainActivity 在导航抽屉中有 6 个片段。现在,每当我处于 6 个片段中的任何一个片段中时,如果我按下后退按钮,我的应用程序就会退出。我只想从第一个片段中退出。如果我在其他片段中,那么如果我按回,我希望它到达第一个片段,如果我再次按回,我想从那里退出。 当片段不在第一个位置时,我必须将片段替换为第一个片段。我知道。但是我究竟如何才能在 onBackPressed 中实现整体呢? 请帮忙 !!提前致谢。
【问题讨论】:
这个***.com/questions/5448653/… 可以帮助你 参考以下链接返回您的片段,***.com/questions/9702216/… 和 ***.com/questions/7919681/… 【参考方案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();
【讨论】:
以上是关于使用 onBackPressed 仅从第一个片段退出 App的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 片段中使用 onBackPressed()