AlertDialog的六种创建方式
AlertDialog的六种创建方式
创建AlertDialog的步骤:
1、创建AlertDialog.Builder对象
2、调用Builder对象的setTitle方法设置标题,setIcon方法设置图标
3、调用Builder相关方法如setMessage方法、setItems方法、setSingleChoiceItems方法、setMultiChoiceItems方法、setAdapter方法、setView方法设置不同类型的对话框内容。
4、调用setPositiveButton、setNegativeButton、setNeutralButton设置多个按钮
5、调用Builder对象的create()方法创建AlertDialog对象
6、调用AlertDialog对象的show()方法将对话框显示出来
一、setMessage:设置对话框内容为简单文本内容
// 创建构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置参数
builder.setTitle("请做出选择").setIcon(R.drawable.ic_launcher)
.setMessage("我美不美")
.setPositiveButton("美", new OnClickListener() {// 积极 @Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "恭喜你答对了", 0)
.show();
}
}).setNegativeButton("不美", new OnClickListener() {// 消极 @Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "一点也不老实", 0)
.show();
}
}).setNeutralButton("不知道", new OnClickListener() {// 中间级 @Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "快睁开眼瞅瞅", 0)
.show();
}
});
builder.create().show();
运行截图:
二、setItem:设置文本框内容为简单列表项
// 创建数据
final String[] items = new String[] { "北京", "上海", "广州", "深圳" };
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置参数
builder.setIcon(R.drawable.ic_launcher).setTitle("提示")
.setItems(items, new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which],
Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
运行截图:
三、setSingleChoiceItems()设置对话框内容为单选列表项
// 创建数据
final String[] items = new String[] { "北京", "上海", "广州", "深圳" };
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 设置参数
builder.setIcon(R.drawable.ic_launcher).setTitle("提示")
.setSingleChoiceItems(items, 0, new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, items[which],
Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
运行截图:
四、setMultiChoiceItems()设置对话框内容为多选项列表
// 创建数据
final String[] items = new String[] { "北京", "上海", "广州", "深圳" };
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher)
.setTitle("提示")
.setMultiChoiceItems(items,
new boolean[] { true, true, false, false, false },
new OnMultiChoiceClickListener() { @Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
Toast.makeText(MainActivity.this,
items[which], 0).show();
}
}
});
builder.create().show();
运行截图:
五、setAdapter()设置对话框内容为自定义列表项(这里是一个布局)
// 创建数据
final String[] items = new String[] { "北京", "上海", "广州", "深圳" };
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("提示")
.setIcon(R.drawable.ic_launcher)
.setAdapter(
new ArrayAdapter<String>(MainActivity.this,
R.layout.item, R.id.tv, items),
new OnClickListener() { @Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, items[which],
0).show();
}
});
builder.create().show();
运行截图:
六、setView()设置对话框为自定义View
// 创建对话框构建器
AlertDialog.Builder builder = new AlertDialog.Builder(this);
// 获取布局
View view2 = View.inflate(MainActivity.this, R.layout.login, null);
// 获取布局中的控件
final EditText username = (EditText) view2.findViewById(R.id.username);
final EditText password = (EditText) view2.findViewById(R.id.password);
final Button button = (Button) view2.findViewById(R.id.btn_login);
// 设置参数
builder.setTitle("Login").setIcon(R.drawable.ic_launcher)
.setView(view2);
// 创建对话框
final AlertDialog alertDialog = builder.create();
button.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
String uname = username.getText().toString().trim();
String psd = password.getText().toString().trim();
if (uname.equals("shenhua") && psd.equals("123456")) {
Toast.makeText(MainActivity.this, "登录成功", 0).show();
}
Toast.makeText(MainActivity.this, "登录失败", 0).show();
alertDialog.dismiss();// 对话框消失
} });
alertDialog.show();
运行截图:
AlertDialog的六种创建方式的更多相关文章
- JavaScript 常见的六种继承方式
JavaScript 常见的六种继承方式 前言 面向对象编程很重要的一个方面,就是对象的继承.A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. 大部分 ...
- Java与设计模式之单例模式(上)六种实现方式
阎宏博士在<JAVA与模式>中是这样描述单例模式的:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. ...
- JavaScript 六种继承方式
title: JS的六种继承方式 date: 2017-06-27 05:55:49 tags: JS categories: 学习 --- 继承是面向对象编程中又一非常重要的概念,JavaScrip ...
- JavaScript常见的六种继承方式
前言 面向对象编程很重要的一个方面,就是对象的继承.A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. 大部分面向对象的编程语言,都是通过"类 ...
- 菜单(Menu)的三中创建方式——Android开发之路2
菜单的三种创建方式 一.OptionsMenu---选项菜单 Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单.这种菜单叫做选项菜单(Options Menu ...
- javascript一种新的对象创建方式-Object.create()
1.Object.create() 是什么? Object.create(proto [, propertiesObject ]) 是E5中提出的一种新的对象创建方式,第一个参数是要继承的原型,如果不 ...
- iOS控制器的创建方式
iOS控制器的创建.除了常见的alloc init外还有通过加载storyboard和xib的方式,下边逐一展开: 1.代码alloc init 创建方式 ViewController *vc= [[ ...
- 面向面试编程——javascript对象的几种创建方式
javascript对象的几种创建方式 总共有以下几个模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.混合构造函数和原型模式 5.动态原型模式 6.寄生构造函数模式 7.稳妥构造函数模式 1 ...
- 帧动画的创建方式 - xml方式
废话不多说,先看东西 创建帧动画1 - xml方式 帧动画的创建方式主要以下2种: * 用xml创建动画: * 用代码创建动画: 本文内容主要关注 xml文件 创建帧动画的方式 xml文件 ...
随机推荐
- Android接入百度自动更新SDK
一:前言 公司的app,上传到百度应用市场,然后说必须要接入百度的自动更新sdk才能上架,于是从百度官网上去下载jar包,下载的时候必须要带上数据统计,如果使用自动的jar包,还需要带上广告联盟,坑爹 ...
- ES6 - Note5:Promise
1.Promise介绍 Promise最早是社区提出和实现,后面ES6将其写入标准,并原生提供Promise对象,是一种异步编程的解决方案,具体的概念大家可以去查看相关的资料.传统上处理异步都是以ca ...
- 分析MariaDB初始化脚本mysql_install_db
在初始化MySQL的过程中经常会碰到各种问题,如 FATAL ERROR: Could not find ./bin/my_print_defaults ERROR: Can't create/wri ...
- Lua 学习笔记(五)函数
函数的定义:在Lua中,函数是一种对语句和表达式进行抽象的主要机制. 一.函数基本用法 在Lua中, 1.函数既可以完成某项特定的任务.(被视为一条语句) 2.也可以 ...
- 构建自己的PHP框架--实现Model类(2)
在上一篇博客中我们简单实现了findOne方法,但我们可以看到,还是有一些问题的,下面我们来修正一下这些问题. 首先是返回的数据中,数字被转换成了字符串.我们需要的是数字啊... PDO中有属性可以支 ...
- ODBC database driver for Go:Go语言通过ODBC 访问SQL server
Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc 一.驱动安装 在cmd中打开GOPATH: ...
- 分享一个基于长连接+长轮询+原生的JS及AJAX实现的多人在线即时交流聊天室
实现网页版的在线聊天室的方法有很多,在没有来到HTML5之前,常见的有:定时轮询.长连接+长轮询.基于第三方插件(如FLASH的Socket),而如果是HTML5,则比较简单,可以直接使用WebSoc ...
- 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用
1.Yeoman? yeoman是一个自动化脚手架工具.它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目.更多的就不多说了,写一遍都写不完,自己看吧 ...
- WPF语音播放MediaPlayer
private MediaPlayer player; public MainWindow() { InitializeComponent(); player = new MediaPlayer(); ...
- iOS阶段学习第35天笔记(Touch手势介绍)
一.Touch手势 1.利用手势实现UIButton移动效果 实例代码 1) 创建一个继承自UIButton的类 MyButton.h 代码实现 #import <UIKit/UIKit.h ...