android入门 — AlertDialog对话框

常见的对话框主要分为消息提示对话框、确认对话框、列表对话框、单选对话框、多选对话框和自定义对话框。
对话框可以阻碍当前的UI线程,常用于退出确认等方面。
在这里主要的步骤可以总结为:
1.创建AlertDialog.Builder对象;
2.调用setTitle()或setCustomTitle()方法设置标题;
3.调用setIcon()设置图标;
4.调用setPositiveButton()、setNegativeButton()或setNeturalButton()添加按钮;
5.调用AlertDialog.Builder的create()方法来创建AlertDialog对象;
6.调用AlertDialog.Builder的show()方法将对话框显示出来。
这一部分,主要使用的是设计模式中的建造者模式,将东西提供给builder,然后会组装成一个完整的对话框。
①显示提示消息的对话框
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id)
{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_4)
.setTitle("提示")
.setMessage("这是一个提示信息")
//处理对话框的时候往往是在一个事件中处理,所以此时使用内部类的方式去做
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//注意这里的this必须要修改,因为是在内部类中,所以直接使用this指的是这个内部类,所以需要修改
Toast.makeText(MainActivity.this, "点击了确认", Toast.LENGTH_SHORT).show();
}
})
.show();
return true;
}
设置了图标、标题和提示信息等属性。
②确认对话框
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id)
{
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_4)
.setTitle("提示")
//可以设置null,表示在点击之后什么都不做,没有后续的处理
//只是使得对话框消失
.setNegativeButton("取消", null)
//处理对话框的时候往往是在一个事件中处理,所以此时使用内部类的方式去做
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//注意这里的this必须要修改,因为是在内部类中,所以直接使用this指的是这个内部类,所以需要修改
//Toast.makeText(MainActivity.this, "点击了确认", Toast.LENGTH_SHORT).show(); //也可以使用finish()结束当前activity的生命周期,变为不可见,之后还可以使用这个activity的资源
//如果当前的activity是主界面,那么activity栈就变成空的,
finish(); //如果调用exit()则是
//System.exit(0);
}
})
.show();
return true;
}
在这里添加了图标、标题。
主要的改变是增加了setNegativeButton()方法和setPositiveButton()方法,用来点击确认或者取消。

③列表对话框
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id)
{
final String[] arr = {"水可载舟,亦可赛艇。", "不要总想搞大新闻!", "西方哪个国家我没去过?", "too young,too simple!"};
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_4)
.setTitle("提示")
.setItems(arr, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您选择了: " + arr[which], Toast.LENGTH_SHORT).show();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { }
})
.show();
return true;
}
首先会定义一个字符数组,然后在onClick()中将字符数组与之绑定。
④自定义对话框
1.定义一个弹出框的格式(用xml定义)
2.反射出对话框
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
Dialog dialog;
public void btnClick(View v)
{
LayoutInflater inflater = LayoutInflater.from(this);
View myView = inflater.inflate(R.layout.layout_myself_dialog, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(myView);
myView.findViewById(R.id.btn).setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
//利用dialog来dismiss
//使得这个对话框消失
dialog.dismiss();
Toast.makeText(Main2Activity.this, "点击了确定", Toast.LENGTH_SHORT).show();
}
});
//必须用一个Dialog类型的变量保存builder.create()产生的对象
dialog = builder.create();
dialog.show();
}
}


android入门 — AlertDialog对话框的更多相关文章
- Android:AlertDialog对话框
1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setM ...
- 【Android】Android中AlertDialog对话框的使用实例
package com.ceac.deng; import android.R.string; import android.support.v7.app.ActionBarActivity; imp ...
- Android在 Alertdialog对话框中点击消失?
在开发的时候遇到一个问题.就是一触摸对话框边缘外部,对话框会自己主动消失.这个问题非常纠结啊,查找了一下发现从Android 4.0開始.AlertDialog有了变化.就是在触摸对话框边缘外部.对话 ...
- android 的AlertDialog对话框
private int selectedFruitIndex = 0; private void showMsg2() {// Dialog alertDialog = new AlertDial ...
- Android中AlertDialog对话框禁止按[返回键]或[搜索键]
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(Di ...
- 11.Android之常用对话框AlertDialog学习
(1)首先我们写个简单的AlertDialog对话框,要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法,然后创建对话框可以设置对话框的属性,比如 ...
- android中常见对话框之一AlertDialog
在Android应用中,有多种对话框:Dialog.AlertDialog.ProgressDialog.时间.日期等对话框. (1)Dialog类,是一切对话框的基类,需要注意的是,Dialog类虽 ...
- Android应用开发学习之AlertDialog对话框
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文中我们通过一个例子来看AlertDialog对话框的实现,其运行效果如下: 主布局文件main.xml内容如下: ...
- Android中弹出对话框,AlertDialog关键代码
写在这里便于以后查看. Android中弹出对话框的关键代码: btn01.setOnClickListener(new OnClickListener() { @Override public vo ...
随机推荐
- layer 刷新某个页面
一:使用layer.open打开的子页面 window.parent.location.reload()//刷新父页面 var index = parent.layer.getFrameIndex(w ...
- Redis(九):Redis的Java客户端Jedis
Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...
- [转]MySQL常用字符串函数
本文转载自:http://www.cnblogs.com/geaozhang/ 是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用: 1.LOWER(column|str ...
- 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...
- MPP调研
一.MMP数据库 MPP是massively parallel processing,一般指使用多个SQL数据库节点搭建的数据仓库系统.执行查询的时候,查询可以分散到多个SQL数据库节点上执行,然后汇 ...
- hadoop jobhistory访问界面长时间打不开
1.浏览器无法直接通过url访问 可能原因 :主机名未配置,因此无法识别,在 c:\windows\system32\drivers\etc 目录添加主机名和对应ip hostname1[主机名 ] ...
- 2.3 摄像头驱动_vivi驱动程序分析
学习目标:熟悉vivi的调用过程,分析vivi程序源码的ioctl函数: 一.vivi虚拟视频驱动测试方法 当我们接上usb摄像头设备时,系统会自动给我们安装对应的usb设备驱动程序.如果下次直接测试 ...
- mac, start sublime from terminal
1.where is sublime CLI /Applications/Sublime Text.app/Contents/SharedSupport/bin/subl 2. run sublime ...
- create a nodejs npm package
1. create a folder named m1 2. run command: npm init, this will create the package.json file 3. crea ...
- JSON初体验(三):FastJson解析
JSON解析之FastJson(阿里巴巴解析开源) 特点: Fastjson是一个Java语言编写的高性能功能完善的JSON库,它采用的 是一种"假定有序快速匹配"的算法,把JSO ...