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

前端之家收集整理的这篇文章主要介绍了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相关文章