setMultiChoiceItems 和 setMessage 在 AlertDialog 中不“工作”

2024-01-30

我很困惑为什么我的对话框无法正常工作:

AlertDialog dialog;
final AlertDialog.Builder builder = new AlertDialog.Builder(this);  
final CharSequence[] confirmCheckbox = {"Delete the SQLite database upon exit."};
final boolean states[] = {false};

builder.setTitle("Delete Database on Exit?");
builder.setMultiChoiceItems(confirmCheckbox, states, new DialogInterface.OnMultiChoiceClickListener(){
    public void onClick(DialogInterface dialogInterface, int item, boolean state) {
    }
}).setMessage("Check the checkbox below to confirm that you wish to delete the SQLite database upon exit.\n" +
        "To cancel this action, hit the back button.")
.setPositiveButton(R.string.confirm_button_text, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {
        dialog.cancel();
    }
});
dialog = builder.create();
//dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); <-- This will fail. BUTTON_POSITIVE is NULL
dialog.show();

我遇到的第一个问题是没有任何显示。我得到标题,它的每一侧都有两个奇怪的白条,中间有一个黑屏,还有一个正按钮,但我无法引用正按钮,因为当我这样做时我得到一个空指针。

我读过很多教程 http://www.learn-android-easily.com/2013/01/adding-check-boxes-in-dialog.html,它们看起来都与我所拥有的相似,但我没有运气。有任何想法吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setMultiChoiceItems 和 setMessage 在 AlertDialog 中不“工作” 的相关文章

随机推荐

  • 字符串格式的日期名称以及未来的天数

    我需要一周中的某一天的名称 但取决于实际日期和未来的日期 例如 我需要今天的日期名称 然后是明天的日期名称 日期名称 2 天等 我编写了此代码 但效果不佳 那么有没有更好的方法如何在 android 中获取日期名称 public Strin
  • docker-compose 的端口号未更改

    我已经在 docker compose 中指定了端口映射 但它仍然无法正常工作 我仍然必须使用公开中未指定的端口来访问站点 下面是我的docker compose yml version 2 networks default externa
  • 试图理解 boost::beast multibuffer

    Beast websocket 示例将数据存储在多缓冲区中 该实现使用一系列一个或多个字符数组 大小不同 额外的字符数组对象被附加到 适应字符大小变化的顺序 顺序 当我查看界面时 我并不完全清楚它是如何工作的 如果我阅读描述 它可以被视为缓
  • 在 IOS7 中检测启用蓝牙的 iPhone 设备

    我在我的应用程序中使用核心蓝牙框架 我知道如何扫描外围设备并从中获取值 例如心率监视器 但我想要的是检索支持 BLE 4 0 和蓝牙功能的周围 iPhone 设备列表 我参考了下面的链接 使用 IOBluetooth 框架 http www
  • 将“is null”转换为 linq to sql 语句

    我在将以下 sql 复制为 LINQ 语句时遇到问题 select TableA from TableA left outer join TableAinTableB on TableA Id TableAId where TableBId
  • 使用 Azure AD 和 WebAPI 进行服务到服务身份验证

    我创建了一个 NET core Web 应用程序 它使用 Azure AD 作为身份 这一切都按预期正常工作 并且我使用 Authorize 装饰的任何内容都受到保护 我现在想要确保我的一个 API 控制器能够从外部服务访问 我遵循了本教程
  • 从外设更改 CBAdvertisementDataManufacturerDataKey

    有什么办法可以修改吗CBAdvertisementDataManufacturerDataKey from CBPeripheralManager 我明白我可以获得CBAdvertisementDataManufacturerDataKey
  • 在调试器中更改 Python 代码

    有没有允许在调试时更改Python代码的调试器 换句话说 发生运行时异常 调试器停止 我以任何我喜欢的方式更改代码 并告诉程序继续 我知道这种方法存在的问题 例如 如果我动态重新定义函数 对函数的引用仍然会指向旧定义 等等 我对此表示同意
  • 使用 FFaker::Internet.user_name 时指定最小长度

    我有一个规范一直失败 因为 FFaker Internet user name 生成的单词少于 5 个字符 如何在此 stmt 中指定最小长度 username FFaker Internet user name String ljust
  • 邮箱/垃圾箱验证[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要为注
  • UWP DatePicker 月份的自定义字符串

    我正在为非英语用户做UWP应用程序 我需要使用 DatePicker 但我不喜欢月份名称用英文书写 我也不想用数字值显示月份 如何设置自己的字符串列表以将其显示在月份选择器上 据我所知 DatePicker不提供月份自定义字符串的机制 如果
  • QRect 的 qHash 函数

    计算的最佳方法是什么qHash的值QRect 我需要使用QRect 有可能QRectF 作为关键QCache 现在我正在使用这样的东西 inline uint qHash const QRect r return qHash QByteAr
  • $(document).ready(initialize) 和 $(document).on('ready',initialize) 有什么区别?

    有什么区别 document ready initialize and document on ready initialize 对我来说 它们似乎以同样的方式工作 document on ready initialize 如果执行文件时
  • 在jsp中使用另存为对话框下载文件...如何提示用户保存,查看取消对话框而不是直接打开图像

    我有一个jsp 其中我提供了一个用于下载任何文档的链接 每当用户单击链接时 都会直接打开文档 我想显示一个对话框 通常出现在许多网站上 它会要求用户保存 取消和查看文档 有人可以帮我吗 我在我的控制器类中使用以下代码 InputStream
  • 访问主程序子目录中的文件

    包含我的主要可执行文件的文件夹非常混乱 其中包含输入 输出和源文件 我想将其中一些文件移动到可执行文件的不同目录中 但仍然能够访问它们 例如 如果我可以制作一个目录 那就太好了 main outfile 它保存了我的程序的所有输出文件 在
  • OpenSSL ASN.1 编程教程

    我正在寻找有关使用 OpenSSL 库进行 ASN 1 DER 编码的任何 C C 教程 示例代码或文档 好吧 正如您在 openssl 网站上看到的那样 没有 ASN 1 函数的官方文档 但你总是可以下载 openssl 源 http o
  • Docker 不会在目录中搜索文件

    我创建了一个 docker 文件 FROM node 13 6 0 alpine3 10 WORKDIR src RUN apk add no cache bash COPY package json COPY package lock j
  • Marklogic Eclipse 设置

    我一直在尝试使用 marklogic 设置 eclipse 以将其用作我的 xquery 编辑器 我按照 Marklogic 关注此链接 http developer marklogic com learn xqdt setup http
  • Google Drive API Java 权限 500 内部错误

    我有下一个共享 Google Drive 文件的方法 public static boolean shareFile HttpServletRequest httpReq String fileId String user String r
  • setMultiChoiceItems 和 setMessage 在 AlertDialog 中不“工作”

    我很困惑为什么我的对话框无法正常工作 AlertDialog dialog final AlertDialog Builder builder new AlertDialog Builder this final CharSequence