java - 当我已经使用 onBackPressed() 来让 webview 返回时,如何在 android 应用程序中弹出警报框以退出?

标签 java android alert android-alertdialog

我希望我的应用程序在退出应用程序时应显示警报框,但如果我尝试在 onBackPressed() 中添加警报框代码,应用程序将强制关闭。

@Override
    public void onBackPressed() {
        if (Fragment1.canGoBack()) {
            Fragment1.goBack();
        }
        if (Fragment2.canGoBack()) {
            Fragment2.goBack();
        } else {

            super.onBackPressed();
        }

这是 WebView 的代码,用于使这些 View 返回。我应该在哪里添加用于退出应用程序的警报框?

最佳答案

不要立即调用 super.onBackPressed(),而是首先显示警报对话框,当用户按下按钮时,调用 super.onBackPressed()

@Override
public void onBackPressed() {
    boolean wentBack = false;

    if (Fragment1.canGoBack()) {
        wentBack = true;
        Fragment1.goBack();
    }
    if (Fragment2.canGoBack()) {
        wentBack = true;
        Fragment2.goBack();
    }

    if (!wentBack) {
        new AlertDialog.Builder(this)
            .setTitle("Quit app?")
            .setMessage("Do you want to quit?")
            .setPositiveButton("Yes", (dialog, which) -> super.onBackPressed())
            .setNegativeButton("No", (dialog, which) -> {})
            .show();
    }
}

关于java - 当我已经使用 onBackPressed() 来让 webview 返回时,如何在 android 应用程序中弹出警报框以退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50612908/

相关文章:

java - 标记文件目录/WEB-INF/functions.tld 不以 "/WEB-INF/tags"开头

java - 如何使 GridLayoutManager 的内容居中?

java - JVM 如何为接口(interface)引用进行内存管理(或有效使用内存)?

java - 字符串数组不匹配

java - 防止单行 TextView 椭圆受约束布局中的标签约束

android - 如何在android shell中制作一行for循环

css - 由于屏幕英寸改变页面样式

java - 在 Apache 服务器上部署 Netbeans REST Web 服务

javascript - 如何用自定义警报框替换默认警报框

ios - 无法使用警报操作定向到另一个 View Controller