微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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();
    }
}

原文地址:https://www.jb51.cc/android/312829.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐