防止后退按钮关闭对话框

2024-01-10

我试图阻止在 Android 中按后退按钮时关闭 AlertDialog 框。我遵循了两种流行的方法在这个线程中 https://stackoverflow.com/questions/4779954/disable-back-button-in-android,并且使用 System.out.println 我可以看到在这两种情况下代码都会执行。不过,后退按钮still关闭对话框。

我可能做错了什么?最终,我试图阻止后退按钮关闭对话框 - 这是第一次运行应用程序时显示的免责声明,我不希望用户有任何选择,只能按“接受”按钮命令应用程序继续。


只需使用setCancelable() http://developer.android.com/reference/android/app/AlertDialog.Builder.html#setCancelable%28boolean%29特征:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);

这可以防止后退按钮关闭对话框,但如果您选择使用“否定”按钮,则它会保持不变。


虽然任何不想接受您的服务条款的用户都可以按主页按钮,但根据 Squonk 的评论,这里还有两种方法可以防止他们“退出”用户协议。一个是简单的“拒绝”按钮,另一个覆盖对话框中的后退按钮:

builder.setNegativeButton("Refuse", new OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
               finish();
           }
       })
       .setOnKeyListener(new OnKeyListener() {
           @Override
           public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
               if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP)
                   finish();
               return false;
           }
       });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止后退按钮关闭对话框 的相关文章

随机推荐

  • git add -A 和 git commit --amend 在一行中的 git 命令是什么?

    git 命令是什么git add A and git commit amend在一行 另外 我不想在修改时指定消息或使用多行 要保留您在要修改的修订版上使用的相同消息 请使用 no edit 在一行中 您可以用 git add A git
  • 在 Python 中验证用户输入字符串

    因此 我搜索了 string python validate user input 等单词的几乎所有排列 但我还没有找到适合我的解决方案 我的目标是提示用户是否要使用字符串 是 和 否 开始另一个事务 我认为在 Python 中字符串比较将
  • 梦幻英超联赛 API [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道梦幻英超网站是否有API 找到了一些旧帖子 但链接不再有效 应用程序商店中有几个应用程序 所以
  • 当大量请求非常快地发出时,如何修复“套接字挂断错误”

    我有一个 Nodejs 应用程序 它聚合来自各个网站的内容 发出请求以使用请求流从不同源异步获取提要 当发出请求时 我经常收到套接字挂起错误 err in accessing the link Error socket hang up at
  • 如何将我的 MVC 3 Web 应用程序发布到 IIS7 上

    如果可能的话 我需要从一开始就如何将我的 ASP Net MVC 3 Razor Visual Studio 10 Web 应用程序实时到我的 IIS 7 Web 服务器上的完全初学者建议吗 我以前从未尝试过发布此内容 想知道我错过了什么
  • 如何获取APK签名?

    有没有办法检索用于签署 APK 的密钥的签名 我使用密钥库中的密钥签署了我的 APK 我如何以编程方式检索它 您可以使用 PackageManager 类访问 APK 的签名http developer android com refere
  • constexpr 错误; VS2017 C++编译器回归?

    刚刚安装了 VS2017 它声称自 2015 年以来就拥有卓越的 C 14 支持 这是初级的 在我的一个项目上试了一下 它使用了constexpr 并注意到似乎存在一些回归 这段代码 struct s size t i constexpr
  • 是否可以在 reST 中从小节级别开始自动进行节标题编号?

    无论如何 有没有办法让 reST 开始仅对第二级的部分进行编号 我正在使用自动编号设置 section numbering 我想要的是输入 Section A Subsection A 1 Subsection A 2 Section B
  • 错误 必须提供“ClientId”选项。构建 docker 镜像时

    我已经启动了一个新的 net core 项目 并将其配置为使用 Google Api 进行身份验证 我的客户端 ID 和密钥使用 dotnet 用户密钥存储 当我构建我的 docker 镜像时 我得到了 Unhandled Exceptio
  • 为什么接口和抽象方法不能实例化?

    我无法弄清楚为什么 java 中接口和抽象类的实例化受到限制 我知道可以创建接口和抽象类的实现参考 我都清楚了 但是为什么不能实例化呢 任何人请帮助我 接口和抽象类的目的都是提供必须在具体类中实现的 API 例如 假设我声明这个接口 pub
  • 在javacard中安装小程序

    我通过 Eclipse 制作了流行的 Hello World javacard 代码的 cap 文件 现在我想通过 GPShell 和 ACR38 智能卡读卡器将其加载到真正的 javacard 中 问题 我需要任何密钥才能将 cap 文件
  • 使用 SSIS 将 SQL Azure 联合数据库提取到数据仓库

    我正在尝试将我们的生产数据传输到数据仓库以用于报告目的 我尝试按照 导入到联盟 部分进行操作用于 Azure 和混合数据移动的 SSIS http msdn microsoft com en us library jj901708 aspx
  • Facebook 错误:“(#100) 尝试访问节点类型 (User) 上不存在的字段 (user_friends)”

    我正在使用 MVC4 并尝试集成 facebook 登录 我已经检查过Facebook 范围列表 https developers facebook com docs facebook login permissions reference
  • 如何查找DLL文件的API函数?

    有没有办法获得所有API 导出 函数从一个DLL file 我知道诸如此类的程序Depends and 体育探索者可以做到这一点 但他们都没有检索参数列表 除非导出的函数类似于 COM DLL 或具有修改功能的 C 否则根本无法提供参数的信
  • 生成给定范围内的随机时间戳?

    我正在尝试做类似的事情 start input select starting date format example Jan 01 00 00 00 end input select ending date if start gt end
  • 致命异常:java.lang.NoClassDefFoundError com.google.android.gms.internal.firebase-perf.zzw

    应用程序启动时出现此错误 致命异常 java lang NoClassDefFoundError com google android gms internal firebase perf zzw 在 com google firebase
  • 从图像中识别井字游戏板的状态

    我正在开发一个项目 我必须在java中使用openCV来识别井字游戏板的状态 请参阅下面的示例程序执行 input Output X O X 我试图通过查找图像中的轮廓来解决此问题 但问题是未标记的空框也被捕获 并且我无法使用多边形大小和轮
  • 以编程方式删除 ViewPager,何时(或如何确保)包含的片段被销毁?

    事先搜索过这个问题 我可以找到很多关于动态添加和删除所选内容的讨论Fragments 来自 aViewPager 然而 我在这里真正关心的是如何以编程方式删除整个ViewPager 干净地 从其包含ViewGroup 当那个ViewPage
  • MySql 中的大表和分析

    对于我的初创公司 我自己跟踪一切 而不是依赖谷歌分析 这很好 因为我实际上可以拥有 ips 和用户 id 以及一切 这种方法一直运行良好 直到我的跟踪表增加了大约 200 万行 该表称为acts 并记录 ip url note 帐户ID 如
  • 防止后退按钮关闭对话框

    我试图阻止在 Android 中按后退按钮时关闭 AlertDialog 框 我遵循了两种流行的方法在这个线程中 https stackoverflow com questions 4779954 disable back button i