Set Positive|Neutral|Negative Button disabled in AlertDialog

简介:

今天设置AlertDialog的按钮不可用,一直出现空指针异常,看来看去代码也挺正常啊,AlertDialog.Builder.create(),之后调用

 
 
  1. dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);  

网上也找到相似的问题:http://www.anddev.org/set_positive_button_as_disabled_in_alertdialog-t13506.html

I get another trouble with it. I'm trying to retrieve this button on onCreateDialog(...) method, I always get nullPointerException by using

 
 
  1. (AlertDialog)dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);   

Before or after:

 
 
  1. dialog=builder.create()  

 原来必须在dialog.show()之后,才能用

 
 
  1. dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);   

否则即便是在create方法之后,获取到的Button仍然是空的,于是就看了一下API:
 

 
  
  1. Creates a AlertDialog with the arguments supplied to this builder. It does not show() the dialog. This allows the user to do any extra processing before displaying the dialog. Use show() if you don't have any other processing to do and want this to be created and displayed.   
  2.  

按我的理解, 就是说在Show(Display)这个对话框之前,即便已经调用create方法,它的状态是不确定的,可以做任何处理,这时候就不能获取到对话框的Button及其他元素。










本文转自 breezy_yuan 51CTO博客,原文链接:http://blog.51cto.com/lbrant/429518,如需转载请自行联系原作者
目录
相关文章
|
存储 NoSQL Linux
redis异常 Commands that may modify the data set are disabled, because this instance is
MISCONF Redis配置为保存RDB快照,但目前无法在磁盘上持久化。可能修改数据集的命令被禁用,因为该实例被配置为在RDB快照失败时报告错误(stop-write -on-bgsave-error选项)。请检查Redis的日志RDB错误的详细信息.
redis异常 Commands that may modify the data set are disabled, because this instance is
|
安全 对象存储
set_time_limit() has been disabled for security reasons
set_time_limit() has been disabled for security reasons
164 0
set_time_limit() has been disabled for security reasons
|
26天前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。
|
2月前
|
存储 Java API
【数据结构】map&set详解
本文详细介绍了Java集合框架中的Set系列和Map系列集合。Set系列包括HashSet(哈希表实现,无序且元素唯一)、LinkedHashSet(保持插入顺序的HashSet)、TreeSet(红黑树实现,自动排序)。Map系列为双列集合,键值一一对应,键不可重复,值可重复。文章还介绍了HashMap、LinkedHashMap、TreeMap的具体实现与应用场景,并提供了面试题示例,如随机链表复制、宝石与石头、前K个高频单词等问题的解决方案。
34 6
【数据结构】map&set详解
|
29天前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
31 1
|
2月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
35 5
|
2月前
|
存储 JavaScript 前端开发
js的map和set |21
js的map和set |21
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
3月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
3月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。