Android开发之使用AlertDialog创建对话框,单选框和多选框
对话框:
对话框的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()方法设置单选
参数:
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(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创建对话框,单选框和多选框的更多相关文章
- Android笔记(十五) Android中的基本组件——单选框和复选框
单选框和多选框通常用来在设置用户个人资料时候,选择性别.爱好等,不需要用户直接输入,直接在备选选项中选择,简单方便. 直接看代码: <?xml version="1.0" e ...
- 自动化测试-15.selenium单选框与复选框状态判断
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...
- 2.12 单选框和复选框(radiobox、checkbox)
2.12 单选框和复选框(radiobox.checkbox) 本篇主要介绍单选框和复选框的操作一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是 ...
- Selenium2学习(十五)-- 单选框和复选框(radiobox、checkbox)
本篇主要介绍单选框和复选框的操作 一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了 ...
- 微信小程序-修改单选框和复选框大小的方法
方法有两种: 一:采用css的zoom属性 zoom缩放会将元素保持在左上角,并且会有毛边,可能会稍稍改变元素原来的形状. 二:采用css3的transform:scale属性 zoom缩放会将元素保 ...
- Selenium3+python自动化 单选框和复选框
一.认识单选框和复选框 1.先认清楚单选框和复选框长什么样 2.各位小伙伴看清楚哦,上面的单选框是圆的:下图复选框是方的,这个是业界的标准,要是开发小伙伴把图标弄错了,可以先抽他了. 二.radio和 ...
- AngularJS进阶(二十四)AngularJS与单选框及多选框的双向动态绑定
AngularJS与单选框及多选框的双向动态绑定 赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! AngularJS 在 <in ...
- CSS学习笔记三:自定义单选框,复选框,开关
一点一点学习CCS,这次学习了如何自定义单选框,复选框以及开关. 一.单选框 1.先写好body里面的样式,先写几个框 <body> <div class="radio-1 ...
- 使用jQuery为文本框、单选框、多选框、下拉框、下拉多选框设值及返回值的处理
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- [DevExpress]ChartControl之基准线示例
关键代码: /// <summary> /// 创建基准线ConstantLine /// </summary> /// <param name="chart& ...
- margin的BUG(2)
继续上一次的学习,这次又发现了margin的第二个bug.既当同时对两个相邻的div盒子设置margin时,他们之间的间隙不能正常显示. 具体表述为:先建立两个div1和div2 <div cl ...
- 【iOS】init,loadView,viewDidLoad加载关系
一.loadView 永远不要主动调用这个函数.view controller会在view的property被请求并且当前view值为nil时调用这个函数.如果你手动创建view,你应该重载这个函数. ...
- NGUI系列教程九(自制ListView)
在NGUI中可以很方便的实现ListView的控件,ListView就好比IOS或Android平台中使用手势上下拖动的控件.在Unity3D中实现ListView的原理无非就两种,第一种是摄像机不动 ...
- 大学生IT博客大赛最技术50强与最生活10强文章
姓名 学校 文章标题 文章地址 刘成伟 井冈山大学 [mystery]-linux黑客之网络嗅探底层原理 http://infohacker.blog.51cto.com/6751239/115511 ...
- Android水平(横向)翻页列表,类似水平GridVIew
Android水平(横向)翻页列表,类似于水平方向的GridView,行列自定义,但要翻页切换,考虑加载性能,当Item数据很多时加载和翻页要流畅,翻页时要有动画效果,效果图如下: 实现方式: 1:翻 ...
- willMoveToParentViewController 与 didMoveToParentViewController
在iOS 5.0以前,我们在一个UIViewController中这样组织相关的UIView 在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候被盖 ...
- 一个 XSD 实例
一个 XSD 实例 本节会为您演示如何编写一个 XML Schema.您还将学习到编写 schema 的不同方法. XML 文档 让我们看看这个名为 "shiporder.xml" ...
- [转载]VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
如果在没有安装vs2012 update3升级包的情况下,创建MVC3项目会出现下面的错误信息. 因为VS2012已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS201 ...
- Samza文档翻译 : Concepts
此页介绍啊Samza的一些高层级概念. Streams Samza处理Streams(流).流由同一类型的不可变的消息组成.例如,一个流可以是对一个网站的所有点击,或者对一个数据库表的所有更新,或者一 ...