【问题标题】: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();
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多