android – 退出应用程序按下后退按钮活动与多个片段在导航抽屉

我正在开发一个需要导航抽屉的应用程序.这个应用程序有1个MainActivity和大约10个片段.当我单击MainActivity中的导航抽屉图标时,它将显示10个片段,以便我们可以选择它们.

我选择片段A,然后选择B,然后选择C …到F.当我在片段F,然后按返回按钮,它会带我回到片段E,然后再回来,将带我到片段D …

我的问题是当我回到片段A(从片段B,当然),并再按一次Back按钮,它带我到一个空白的白色屏幕(我认为这是主要的活动布局).并再按一次,应用程式将退出.

我想要的是当我回到片段A(最后一个片段)并点击后,应用程序将立即退出,而不是空白的白色屏幕

我搜索了SO,发现1个类似的问题,但没有回答,所以我必须再提出一个问题

我该怎么做?
非常感谢你

解决方法

我想我是另一个未回答的问题,所以我想告诉你我的解决方法:

我检查我的FrameLayout中是否有一个孩子.如果有一个,我会回去一个片段.并再次检查.因为我确实只知道白屏,所以我需要检查一下0个孩子.如果还有另外一个片段,没有什么可做的,但是如果孩子== 0,你想要求离开活动.

或者,如果达到最后一个片段,您可以删除AlertDialog并关闭该应用.

@Override
public void onBackPressed() {
    FrameLayout fl = (FrameLayout) findViewById(R.id.content_frame);
    if (fl.getChildCount() == 1) {
        super.onBackPressed();
        if (fl.getChildCount() == 0) {
            new AlertDialog.Builder(this)
                    .setTitle("Close App?")
                    .setMessage("Do you really want to close this beautiful app?")
                    .setPositiveButton("YES",new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog,int which) {
                                    finish();
                                }
                            })
                    .setNegativeButton("NO",int which) {
                                }
                            }).show();
            // load your first Fragment here
        }
    } else if (fl.getChildCount() == 0) {
        // load your first Fragment here
    } else {
        super.onBackPressed();
    }
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...