首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在运行时禁用AlertDialog的正按钮?

在运行时禁用AlertDialog的正按钮,可以通过以下步骤实现:

  1. 在AlertDialog创建时,获取其父Dialog,并获取到按钮的ID。
  2. 在创建按钮时,将其ID设置为-1,以禁用该按钮。
  3. 在AlertDialog运行时,使用ViewUtils工具类来获取按钮的ID,如果按钮的ID为-1,则说明该按钮已被禁用,因此不需要执行任何操作。

以下是示例代码:

代码语言:java
复制
// 创建AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Dialog 标题");
builder.setMessage("Dialog 的内容");

// 创建按钮
builder.setPositiveButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});

// 获取按钮的ID
int buttonId = builder.getButton(AlertDialog.BUTTON_POSITIVE).getId();

// 创建按钮并禁用
builder.setNegativeButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});
builder.setNeutralButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});

// 获取按钮的ID
buttonId = builder.getButton(AlertDialog.BUTTON_NEUTRAL).getId();

// 创建按钮并禁用
builder.setPositiveButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});

// 获取按钮的ID
buttonId = builder.getButton(AlertDialog.BUTTON_POSITIVE).getId();

// 创建按钮并禁用
builder.setNegativeButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});

// 获取按钮的ID
buttonId = builder.getButton(AlertDialog.BUTTON_NEUTRAL).getId();

// 创建按钮并禁用
builder.setPositiveButton("禁用", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        // 禁用按钮
        dialogInterface.dismiss();
    }
});

// 获取按钮的ID
buttonId = builder.getButton(AlertDialog.BUTTON_POSITIVE).getId();

// 禁用按钮
builder.getButton(buttonId).setEnabled(false);

// 创建AlertDialog
AlertDialog alertDialog = builder.create();

// 显示AlertDialog
alertDialog.show();

通过以上代码,我们就可以在运行时禁用AlertDialog的正按钮了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在运行时(Runtime)获得泛型真正类型

可以通过以下方式再运行时获得泛型真正类型 泛型如何获得具体类型 List 例子如下 来自:https://stackoverflow.com/questions/1942644/get-generic-type-of-java-util-list...,都是基于 java.lang.reflect.ParameterizedType jackson 中如何反序列化泛型 jackson 中将JSON 转为Map 可以通过如下代码实现,方式一: ObjectMapper...可以使用方式二,告知实际 Map 中存放对象,从而得到正确类型,代码如下所示: ObjectMapper mapper = new ObjectMapper(); String json = "{\...实际上也是根据 ParameterizedType 获得真正类型。...通过 TypeReference 获得真正类型 代码类似如下,最后得到 tmpType1 是 Class 类型,就能够基于它其他操作了。

2.6K20

灵活令人抓狂,如何在运行时修改某一个 Python 对象类?

这样场景你也可能遇到:调试时候,我需要追踪某一个 Python 对象属性变化,比如对象 someobj = SomeClass(),当 someobj 添加了一个属性( someobj.age =...14)或者修改了属性值 (someobj.age = 18)时候,打印这些变化。...我们要解决问题是如何在运行中,只修改某一个对象类?...话不多说,先看代码: 上述代码运行结果: 重点在于第 22 行,通过对象 __class__ 属性来运行时修改一个对象所属类, Python 真是灵活到令人发狂。...最后的话 本文分享了如何在运行时修改某一个对象类,可以帮助我们更好调试代码,你也可以实现其他更高级功能。

82800

SAP UI5 应用 Component.js 文件是如何在运行时被加载

提问 请问一下,Component.js这个文件,程式是如何调用?我看在index.js中,只是指定了路径,并没有指定文件名称。...难道这个文件名称是SAP UI5中hardcode吗?...按 F11 单步调试进去: 这里发现确实是像提问朋友那样说,Component 这个文件名是 SAP UI5 硬编码,首字母改成小写 c 都不行。...下面的代码,首先把应用程序里我们自定义命名空间 sap.ui5.walkthrough 同 .Component 做字符串连接,然后把连接后字符串里所有的 ....没有确定规则去定义什么代码应该属于一个模块——捆绑在模块中内容取决于开发人员,但通常一个模块内内容应当具有共同主题。

1.3K30

安卓入门-第三章-安卓常用控件使用方式

,现在运行程序,效果如图3.1所示。...BUTTON,这是由于系统会对Button中所有英文字母自动进行大写转换,如果这不是你想要效果,可以使用如下配置来禁用这一默认特性:加入描述语句:android:textAllCaps="false...,这样当输入内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸。  ...这时你可能会问,旋转进度条表明我们程序正在加载数据,那数据总会有加载完时候吧?如何才能让进度条在数据加载完成时消失呢?这里我们就需要用到一个新知识点:**Android控件可见属性。... AlertDialog可以在当前界面弹出一个对话框,这个对话框是置顶于所有界面元素之上,能够屏蔽掉其他控件交互能力,因此AlertDialog一般都是用于**提示一些非常重要内容或者警告信息

1.8K20

Flutter质感设计之持久底部面板

持久性底部面板可以用于补充应用主要内容信息,即使用户与应用程序其他控件进行互动,也仍然可以看到持久底部面板。...super.initState(); _showBottomSheetCallback = _showBottomSheet; } void _showBottomSheet() { setState(() { // 禁用按钮...((){ // mounted:bool值,这个State对象当前是否在树中 if (mounted) { setState(() { // 重新启用按钮 _showBottomSheetCallback...( context: context, // AlertDialog:质感设计中告警对话框 child: new AlertDialog( // content:对话框可选内容,以浅色字体显示在对话框中心...content: new Text('你点击了浮动按钮'), // actions:显示在对话框底部可选操作 actions: <Widget [ // FlatButton:质感设计中平面按钮

72231

Android 对话框组件 AlertDialog 四种常用方法

在Android中,AlertDialog可以为当前界面上显示一个对话框,而且产生对话框是在所有界面元素上面的,能够覆盖掉其余组件,所以AlertDialog一般是用于提示一些非常重要信息或者警告内容...二、如何使用? AlertDialog功能十分强大,它不仅可以生成带按钮提示对话框,还可以生成带列表列表对话框。 对话框区域通常被分为四个区域,分别是图标区、标题区、内容区、按钮区域。...1.显示带确定、取消按钮对话框 效果图: 单击按钮后:  对话框隐藏,提示单击信息。  ...显示带列表对话框 效果展示: 单击按钮后: 对话框隐藏,提示单击信息。...本文主要总结了 AlertDialog 四种常用方法,以便后续不时之需。

22040

如何更改Dialog标题与按钮颜色详解

前言 本文主要给大家介绍了如何更改Dialog标题与按钮颜色相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细介绍吧。...android.support.v7.app.AlertDialog 在这个类中第一行就定义了如下变量: final AlertController mAlert; AlertDialog功能具体实现都在这个...); btnPositive.setTextColor(color); 这种方式只能设置按钮颜色,而无法设置标题颜色 2 AlertDialog.getWindow AlertDialog构造函数如下...所以这里可以这样得到对话框标题和按钮: //标题 TextView tvTitle = (TextView)AlertDialog.getWindow().findViewById(R.id.alertTitle...); //按钮 Button btnPositive = (Button)AlertDialog.getWindow().findViewById(R.id.button1); 然后设置所需要颜色就可以了

8.3K21

Android使用AlertDialog创建对话框

AlertDialog功能十分强大,它不仅可以生成带按钮提示对话框,还可以生成带列表列表对话框,概括起来有一下4种: 1.带确定、中立和取消等N个按钮提示对话框,其中按钮个数不是固定,可以根据需要添加...例如,不需要中立按钮,则可以只生成带有确定和取消按钮对话框,也可以是只需有一个按钮对话框。...2.带列表列表对话框 3.带多个单选列表项和N个按钮列表对话框 4.带多个多选列表项和N个按钮列表对话框 在使用AlertDialog类生成对话框时,常用方法如下所示: setTitle :为对话框设置标题...通常情况下,使用AlertDialog类只能生成带N个按钮提示对话框,要生成另外3种列表对话框,需要使用AlertDialog.Builder类,AlertDialog.Builder类提供常用方法如下表...下面通过一个具体实例说明如何使用AlertDialog类生成提示对话框和各种列表对话框 res/layout/main.xml: <?

1.7K30

android dialog用法

Android API 支持下列类型对话框对象:   警告对话框 AlertDialog: 一个可以有0到3个按钮, 一个单选框或复选框列表对话框....由于它是AlertDialog扩展, 所以它也支持按钮.   日期选择对话框 DatePickerDialog: 让用户选择一个日期.   ...设定好以后, 使用create()方法来获得AlertDialog对象.   下面的主题展示了如何AlertDialog定义不同属性, 使用AlertDialog.Builder类....注意:对每种按钮类型,只能为AlertDialog创建一个。也就是说,一个AlertDialog不能有两个以上"positive"按钮。这使得可能按钮数量最多为三个:肯定、否定、中性。...增加按钮Adding buttons 这就是我一开始很想知道究竟如何添加Yes/No,Ok/Cancel这样按钮

1.3K30

Android开发笔记(二十三)文件对话框FileDialog

其中最常用AlertDialog,而且需要自定义对话框时候,多半也是在AlertDialog.Builder基础上集成其他控件,具体参见《Android开发笔记(六十六)自定义对话框》。...接着创建一个AlertDialog.Builder对象,在该Builder对象中嵌入布局视图,并设置标题、确定按钮、取消按钮。...最后还要提供一个回调接口,用于主页面上处理日期和时间选择事件,同时在确定按钮点击事件中要触发该回调接口方法。...onCreateDialog方法后面当然要依例添加AlertDialog.Builder对象,依次设置标题、内容、图标、确定按钮、取消按钮等元素,其中确定按钮点击事件需要调用回调接口处理方法。...当然不要忘了在主页面的回调方法中对选定文件做具体处理,文件打开之后要如何读取数据,又要如何把内存中数据保存到文件中。 下面是文件打开对话框与文件保存对话框页面截图: ? ?

3.2K30

信息提醒之对话框(AlertDialog + ProgressDialog)-更新中

---- 带2个按钮(确认、取消)对话框 显示这样对话框关键是如何显示两个按钮以及响应这两个按钮单击事件。...---- 带3个按钮(覆盖、忽略、取消)对话框 用AlertDialog类创建对话框最多可以添加3个按钮,除了上面添加两个方法,还可以使用setNeutralButton方法向对话框中添加第三个按钮...使用AlertDialog类创建对话框最多只能有3个按钮,因此,就算多次调用这3个设置按钮方法,最多也只能显示3个。...---- 单选列表对话框-setSingleChoiceItems 通过AlertDialog.Builder类setSingleChoiceItems方法可以创建带有单选按钮列表对话框。...由于存在“确定”按钮单击事件中需要引用AlertDialog变量,因此先使用create方法返回AlertDialog对象,然后在单击事件中使用该变量 ---- 进度对话框 查看大拿总结 进度对话框通过

4.3K10

Android界面组件基本用法

为ImageButton指定android:text属性没用,不会显示文字 可以指定android:background为按钮增加背景图片,但这图片是固定 可以指定android:src为图片按钮增加图片属性...参数为增加,参数为负减少 实例: public void onCreate(Bundle savedInstanceState) { final ProgressBar bar = (ProgressBar...每个列表项是已勾选列表项 simple_list_item_multiple_choice 每个列表项是带多选框文本 simple_list_item_single_choice 每个列表项是带多单选按钮文本...15.使用AlertDialog 创建AlertDialog.Builder对象,该对象是AlertDialog创建器 调用AlertDialog.Builder方法为对话框设置图标、标题等 调用AlertDialog.Builder...create()方法创建AlertDialog对话框 调用AlertDialogshow()方法显示对话框 AlertDialog ad = new AlertDialog.Builder(MainActivity.this

1.6K20

在 Android 开发中使用协程 | 代码实战

禁用按钮,只需要告诉 UI 在 sortPricesBy 中是否有正在处理排序请求,示例代码如下: // 方案 0: 当有任何排序正在执行时禁用排序按钮 class ProductsViewModel..._sortButtonsEnabled 在排序时禁用按钮 好了,这看起来还行,只需要在调用 repository 时在 sortPricesBy 内部禁用按钮就好了。...如果一个协程在运行时,另一个协程尝试进入该代码块就必须挂起自己,直到所有的持有 Mutex 协程完成任务,并释放 Mutex 后才能进入。...当请求正在进行时禁用按钮就可以简单地解决问题。但是如果我们不想这样,或者说不能这样,我们就可以选择这种方法复用已经存在请求。...最简单 (往往也是最好) 方案就是从 UI 上直接更改,排序运行时直接禁用按钮。 最后,我们探讨了一些高级并发模式,并介绍了如何在 Kotlin 协程中实现它们。

1.1K10

安卓Android6.0权限动态获取操作示例

分享给大家供大家参考,具体如下: 众所周知 , 安卓6.0现在运越来越广泛 , 因为相对于之前几个版本 , 对于用户权限这个概念确实不是很重视 , 而6.0 之后 , 为了提升用户操作安全性 ,...运行时权限诞生了, 就是在用户运行软件时候动态获取所需要权限 , 下面跟大家分享一个我代码案例 : import android.Manifest; import android.app.AlertDialog...android.view.KeyEvent; import java.util.ArrayList; import java.util.List; /** * 继承了Activity,实现Android6.0行时权限检测...* 需要进行运行时权限检测Activity可以继承这个类 * * @author xingtao sun * @创建时间:2016年12月28日 * @项目名称: 安卓6.0运行时权限 */ public...builder = new AlertDialog.Builder(this); builder.setTitle(R.string.notifyTitle); builder.setMessage(

75820

IDEA Web渲染插件开发(二)— 自定义JsDialog

《IDEA Web渲染插件开发(一)》中,我们了解到了如何编写一款用于显示网页插件,所需要核心知识点就是IDEA插件开发和JCEF,在本文中,我们将继续插件开发,为该插件JS Dialog显示进行自定义处理...接下来,就需要我们针对不同对话框类型,展示不同UI,那么需要我们了解如何在IDEA插件中弹出对话框。...AlertDialog编写完成后,我们可以在需要地方编写如下代码进行弹框展示: new AlertDialog("注意", "这是一个弹出框").show(); // 或 boolean isOk...dialog默认是Cancel+OK按钮组合。...Dialog按钮自定义(重写createActions) IDEA插件DialogWrapper默认情况下是Cancel+OK按钮组合。那么如何自定义我们按钮呢?

51310

【Android初级】如何实现一个具有选择功能对话框效果

今天就分享一个具有选择功能简易对话框,给用户展示一个选择列表。...实现思路如下: 既然有选择列表,那么这个列表内容肯定保存在某个地方 用户选择某一项后,给用户做出提示,刚才选择是什么 该功能主要用AlertDialog,源码如下: 1、主Activity(...show(); } }) // 第一个对话框有个 取消 按钮...分享这个极为简单功能,主要是为后面学习AlertDialog中高级用法以及实现具备复杂选择功能需求打下坚实基础。...往期推荐 【Android初级】如何实现一个“模拟后台下载”加载效果 【Android初级】如何动态添加菜单项(附源码+避坑) 分享一个口语中可以替代“deceive”地道表达 使用TypeFace

79410

VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡

可以在启动(当Excel开启时)动态设置值,可以在运行时改变它们值(在使元素无效后通过使用VBA回调过程)。...正如本文开头提到,也可以在满足某条件时在运行时动态地隐藏(和取消隐藏)内置组。这样例子包括:选择了图表工作表、选择了特定工作表、从组合框中选择了特定项、以及勾选了网格线复选框。...例如,下面的示例XML代码和在标准VBA模块中代码在运行时满足某条件时隐藏(和取消隐藏)“对齐方式”组: ? customUI元素包括带有Initialize回调过程onLoad属性。...与隐藏(和取消隐藏)内置组相似,可以在运行时当满足某条件时动态地隐藏(和取消隐藏)内置选项卡。例如,运行时当满足某条件时,下面的示例XML代码和VBA代码可以隐藏(和取消隐藏)“开始”选项卡: ?...可以在设计时永久地或者在运行时动态地隐藏(和取消隐藏)自定义控件。然而,动态地隐藏(和取消隐藏)控件更可取,可以设置自已条件来是否使控件隐藏。

7.7K20
领券