对话框:

对话框的icon,title,message等都可以不设置。

单选框和多选框与对话框勾选步骤基本上一致。

对话框的构建步骤:

1.使用AlertDialog类的内部类Builder类new 一个builder对象

2.设置图标setIcon() ;                            builder.setIcon();

3.设置title setTitle();                          builder.setTitle();

4.设置Message  setMessage();             builder.setMessage();

5.设置确定按钮  setPositiveButton() ;      builder.setPositiveButton()

6.设置取消按钮   setNegativeButton();    builder.setNegativeButton()

7.设置显示     show();                           builder.show();

代码:

     public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.alert_dark_frame);
builder.setTitle("鼻血俭朴");
builder.setMessage("尹志平,请考虑好!!!");
builder.setPositiveButton("确定", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "谢谢使用本软件,关闭", 0).show();
}
}); builder.setNegativeButton("取消", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "没有子宫,肯定不成功", 0).show();
}
}); builder.show();
}

单选框:

注意:构建过程中,不可以使用setMessage()方法,否则会不显示选项列表。

使用setSingleChoiceItems()方法设置单选

Builder.setSingleChoiceItems(CharSequence[] items, int checkedItem, OnClickListener listener)

参数:

1.items:定义的单选选项数组

2.checkedItem:默认被选中的选项。默认不选中为-1,选中数组第一个为0,选中数组第二个为1,选择数组第三个为2

3.listener:侦听器

         builder.setSingleChoiceItems(items, -1, new OnClickListener() {

             @Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "选择的是:" + items[which], 0)
.show();
dialog.dismiss();
}
});

侦听器的onClick()方法的两个参数

1.dialog:点击时触发的对话框

2.which:被点击按钮的位置或者项目的位置

 

代码:

     public void click1(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(android.R.drawable.alert_dark_frame);
builder.setTitle("鼻血俭朴");
final String[] items = new String[] { "女", "男" };
builder.setSingleChoiceItems(items, -1, new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "选择的是:" + items[which], 0)
.show();
dialog.dismiss();
}
});
builder.show();
}

多选框:

注意:构建过程中,不可以使用setMessage()方法,否则会不显示选项列表。

使用setMultiChoiceItems()方法设置多选

Builder.setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, OnMultiChoiceClickListener listener)
参数:
1.items:定义的多选选项的数组
2.checkedItems:boolean[]数据记录多选选项数组中那个被选中,选中了为true,没有选中为false
3.listener:侦听器,多选的侦听器为OnMultiChoiceClickListener
         builder.setMultiChoiceItems(items, checkedItems,
new OnMultiChoiceClickListener() { @Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
checkedItems[which] = isChecked;
}
});

侦听器的onClick()方法的两个参数

1.dialog:点击时触发的对话框

2.which:被点击按钮的位置或者项目的位置

3.isChecked:点击某个选项,如果该选项之前没被选择,那么此时isChecked的值为true,不勾选则为false。

代码:

     public void click2(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.alert_dark_frame);
builder.setTitle("请选择多个选项");
final String[] items = new String[] { "貂蝉", "西施", "主管", "设计", "开发" };
final boolean[] checkedItems = new boolean[] { false, false, false,
false, false };
builder.setMultiChoiceItems(items, checkedItems,
new OnMultiChoiceClickListener() { @Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
checkedItems[which] = isChecked;
}
});
builder.setPositiveButton("确定", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) { String text = "";
for (int i = 0; i < items.length; i++) {
if (checkedItems[i]) {
text += items[i];
}
}
Toast.makeText(MainActivity.this, text, 0).show();
dialog.dismiss(); }
});
builder.show();
}

AlartDialog按Back键的处理:

可以通过代码设置:默认是true,就是说可以通过按back键取消了。

builder.setCancelable(false);  //默认为true

同时可以设置back键的监听,自定义动作

 builder.setOnCancelListener(new OnCancelListener() {

             @Override
public void onCancel(DialogInterface dialog) {
//定义的操作
}
});

Android开发之使用AlertDialog创建对话框,单选框和多选框的更多相关文章

  1. Android笔记(十五) Android中的基本组件——单选框和复选框

    单选框和多选框通常用来在设置用户个人资料时候,选择性别.爱好等,不需要用户直接输入,直接在备选选项中选择,简单方便. 直接看代码: <?xml version="1.0" e ...

  2. 自动化测试-15.selenium单选框与复选框状态判断

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  3. 2.12 单选框和复选框(radiobox、checkbox)

    2.12 单选框和复选框(radiobox.checkbox) 本篇主要介绍单选框和复选框的操作一.认识单选框和复选框    1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是 ...

  4. Selenium2学习(十五)-- 单选框和复选框(radiobox、checkbox)

    本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...

  5. 微信小程序-修改单选框和复选框大小的方法

    方法有两种: 一:采用css的zoom属性 zoom缩放会将元素保持在左上角,并且会有毛边,可能会稍稍改变元素原来的形状. 二:采用css3的transform:scale属性 zoom缩放会将元素保 ...

  6. Selenium3+python自动化 单选框和复选框

    一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了. 二.radio和 ...

  7. AngularJS进阶(二十四)AngularJS与单选框及多选框的双向动态绑定

    AngularJS与单选框及多选框的双向动态绑定      赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! AngularJS 在 <in ...

  8. CSS学习笔记三:自定义单选框,复选框,开关

    一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...

  9. 使用jQuery为文本框、单选框、多选框、下拉框、下拉多选框设值及返回值的处理

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Couchbase上发布的关于NoSQL的技术论文

    Couchbase是CouchDB与Membase两个NoSQL数据库相结合的产物,本文推荐的是Couchbase官方发表的一篇论文,命名为<NoSQL Database Technology& ...

  2. phpstorm配置取消掉63342

    http://ask.csdn.net/questions/171665

  3. Spark Streaming揭秘 Day18 空RDD判断及程序中止机制

    Spark Streaming揭秘 Day18 空RDD判断及程序中止机制 空RDD的处理 从API我们可以知道在SparkStreaming中,对于RDD的操作一般都是在foreachRDD和Tra ...

  4. 50个C++源码学习网站

    C/C++是最主要的编程语言.这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码 .这份清单提供了源代码的链接以及它们的小说明.我已尽力包括最佳的C/C++源代码的网站.这不是一个完整的 ...

  5. WPF中禁止WebBrowser控件打开新窗口

    一.针对纯WPF的WebBrowser控件: <summary> Suppress Script Errors In WPF WebBrowser </summary> pub ...

  6. js中的计时器

    在JS中做二级菜单时,被一个鼠标移出时隐藏的小问题困扰了很久. <script> function Menu(id){ var _this=this; this.obj=document. ...

  7. C# window service的创建

    其实我也是第一次在博客园写博客,看到那些高手说自己要多动手写博客,于是乎自己也尝试尝试. 废话不多说.这几天在研究window service,通过查找各种大神写的博客,我终于成功的自己写出来了. 下 ...

  8. 三、记一次失败的 CAS 搭建 之 服务端配置

    ==================================================================================================== ...

  9. java开发命名规范总结

    一 包名的书写规范 (Package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性.包名全部为小写字母,且具有实际的区分意义. 1.1 一般要求1.选择有意义 ...

  10. 移动APP学习笔记一

    登录 ●登录用户名和密码错误时,界面有提示信息 ●用户主动退出登录后,下次启动APP时,应该进入登录界面 ●对于支持自动登录的APP,数据交换时  ,是否能自动登录成功且数据库操作无误 ●密码更改后, ...