根据谷歌的官方文档呢,我们可以有三种列表显示的关于ALertDialog api的可用:。(1)传统的单一选择列表(2)一个持久的单一选择列表(单选按钮) (3)一个持久的多项选择列表(复选框) 。创建单一选择列表很简单,使用setItems()方法。

 public AlertDialog onCreateDialog(Context context,String name,int item) {AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle(name).setItems(item, new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int which) {// The 'which' argument contains the index position// of the selected item}});return builder.create();}

调用这个方法,传入三个参数,第一个就是上下文对象,第二个标题名字,第三个就是要显示的数据array.。因为列表出现在对话框的内容区域,导致对话框无法显示消息和一个列表,所以我们应该设定一个标题给对话框,setTitle()。指定的项目列表,叫setItems(),通过一个array数组。当然我们可以使用setAdapter指定列表()。这将允许我们的列表加载动态数据(如数据库)使用ListAdapter。如果你选择你的列表使用ListAdapter方法,一般使用Loader,异步加载的内容.

添加一个多项选择列表项(复选框)或单一选择项目(单选按钮),使用setMultiChoiceItems()或setSingleChoiceItems()方法。如下述代码所示

public AlertDialog onCreateDialog(final Context context,  int items, String name) {final List<Integer> mSelectedItems = new ArrayList<Integer>();AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle(name);builder.setMultiChoiceItems(items, null,new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {if (isChecked) {// If the user checked the item, add it to the selected itemsmSelectedItems.add(which);} else if (mSelectedItems.contains(which)) {// Else, if the item is already in the array, remove it mSelectedItems.remove(Integer.valueOf(which));}}});builder.setPositiveButton("确认", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.dismiss();}});builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.dismiss();}});return builder.create();}

虽然传统的列表和列表与单选按钮提供一个“单一选择”行动,但我们如果想保存用户的数据选择的话,我们必须使用setSingleChoiceItems()。也就是说,如果以后再打开对话框应该显示用户当前的选择是什么,然后用checkbox创建一个list。

Android开发之Dialog的三种列表显示(解读谷歌官方API)相关推荐

  1. Android开发之Dialog对话框(弹框)工具类

    公司项目里面扣出来的 我们来看下弹框效果 直接上代码 ScreenSizeUtils.java package 导入自己的包;import android.content.Context; impor ...

  2. Android开发之GridView的使用(解读谷歌官方API)

    GridView将图片显示在二维可移动的网格里,使用ListAdapter可以将Grid项目自动填充满整个布局.下面我们根据官方文档的例子来实现一下使用GridView,点击视图里的图片弹出图片的po ...

  3. android md5加密登录,Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  4. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  5. Android开发之旅:组件生命周期(二)

    引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...

  6. Android开发之旅:HelloWorld项目的目录结构

    引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...

  7. Android 开发之旅:深入分析布局文件又是“Hello World!”

    引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实践,我们拿起手术刀对默认的"Hello World!"程序进行了3个手术,我们清楚了"Hell ...

  8. android中oncreate方法,android开发之onCreate( )方法详解

    这里我们只关注一句话:This is where you should do all of your normal static set up.其中我们只关注normal static, normal ...

  9. Android开发之ViewFlipper

    Android开发之ViewFlipper /* *  Android开发之ViewFlipper *  北京Android俱乐部群:167839253 * Created on: 2012-7-25 ...

最新文章

  1. java 集合框架(一)
  2. Android 5.0 SEAndroid下如何获得对一个内核节点的访问权限
  3. 64位Linux下安装mysql-5.7.13-linux-glibc2.5-x86_64 || 转载:http://www.cnblogs.com/gaojupeng/p/5727069.html
  4. MySQL高级 - 锁 - InnoDB行锁 - 行锁升级为表锁
  5. JAVA Feign
  6. 计算机无法安装系统,一招就能搞定“这台电脑无法安装 Windows 11”的解决方法...
  7. python语音识别框架_横评:五款免费开源的语音识别工具
  8. HTML、CSS、JS对unicode编码字符的规则
  9. 最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
  10. APUE C内存空间详解图
  11. 冬日魔幻之旅-seata+dubbo+nacos+springboot解决分布式事务的全网段唯一实践之作(上)
  12. 西游记中孙悟空被唐僧赶走的三回
  13. 为什么要选择云原生数据库
  14. 【- Flutter 桌面篇 -】 FlutterUnit win版闪亮登场
  15. 事件模式归纳相关研究简述
  16. Win11笔记本耗电大怎么解决?Win11耗电快怎么办?
  17. 酒店小程序线上线下推广引流策略
  18. 网管软件禁止网购木马偷梁换柱
  19. 自考计算机网络管理串讲笔记,自考“计算机网络技术”串讲
  20. 网页设计教程:从设计到制作过程

热门文章

  1. matlab ufunc,ufunc函数
  2. mysql获取配置文件信息,四种获取MySQL数据库配置文件加载顺序
  3. linux root用户无法ssh,root用户无法通过ssh连接Linux系统
  4. python监控mysql数据改变_python3小脚本-监控服务器性能并插入mysql数据库
  5. dice系数 交叉熵_语义分割中的损失函数
  6. vc中GetDlgItem用法
  7. python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
  8. php 文件移动到文件夹,PHP-将文件移至服务器上的其他文件夹
  9. 反转链表的golang实现
  10. 开启mysql远程访问的权限