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 ...
随机推荐
- JQuery制作网页——第五章 初识 jQuery
1.jQuery简介: ● jQuery由美国人John Resig于2006年创建 ● jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装 ● 它的设计 ...
- button onclick实现跳转的常用方法
1.onclick="javascript:window.location.href='aa.htm' " 2.onclick="location='URL' " ...
- Spring Security学习笔记(一)
认证和权限控制 AuthenticationManager是认证的主要接口,它只有一个authenticate方法,可以做3件事情. 返回一个认证信息(Authentication),表示认证成功 抛 ...
- Linux-3.5-Exynos4412驱动分层分离
linux-3.5/Documentation/driver-model/bus.txt 先写一个简单的例子,是为了给学习platform做准备. dev.h #ifndef JASON_DEV_H_ ...
- 《TCP/IP详解 卷1:协议》系列分享专栏
<TCP/IP详解卷1:协议>是一本详细的TCP/IP协议指南,计算机网络历久不衰的经典著作之一. 作者理论联系实际,使读者可以轻松掌握TCP/IP的知识.阅读对象为计算机专业学生.教师以 ...
- Java——异常处理---18.11.14
异常时程序中会有一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error: 如果你用 System ...
- Multimodal Machine Learning:A Survey and Taxonomy 综述阅读笔记
该笔记基于:Multimodal Machine Learning:A Survey and Taxonomy 该论文是一篇对多模态机器学习领域的总结和分类,且发表于2017年,算是相当新的综述了.老 ...
- BZOJ1968_COMMON约数研究_KEY
题目传送门 BZOJ水题,for i=1~N,答案加上N/i即可 ANS=∑N/i(i∈{1~N}) code: /****************************************** ...
- 北京Uber优步司机奖励政策(1月27日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 佛山Uber优步司机奖励政策(7月27日-8月2日)
周上线时间少于等于7个小时,以下奖励条件无效,仅返还车资. 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最详细注册流程)/月入2万/ ...