由于AlertDialog类的构造方法被声明成protected方法,因此,不能直接使用new关键字来创建AlertDialog类的对象实例。为了创建AlertDialog对象,需要使用Builder类,该类是在AlertDialog类中定义的一个内嵌类,首先必须创建AlertDialog.Builder类的对象实例,然后通过AlertDialog.Builder类的show方法显示对话框。
AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。
使用AlertDialog.Builder创建对话框需要了解以下几个方法:
setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setNeutralButton :普通按钮
setPositiveButton :给对话框添加"Yes"按钮
setNegativeButton :对话框添加"No"按钮
create : 创建对话框
show :显示对话框
代码:
AlertDialog dialog = newAlertDialog.Builder(MainActivity.this).setIcon(null).setTitle("dialog").setMessage("nihao").setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
MainActivity.this.finish();
}
// 如果都使用setPositiveButton()方法,则只显示一个(后面的那个),前面的被覆盖
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
}).create();
//显示对话框也可以使用showDialog(int id)方法显示对话框
dialog.show();
注意:
1、 setPositiveButton()和setNegativeButton()方法中的第二个参数的数据类型是android.content.DialogInterface.OnclickListener,而不是View中的OnClickListener。
2、 使用show方法显示对话框是异步的。也就是说,当调用AlertDialog。Builder.show或AlertDialog.show方法显示对话框后,show方法会立即返回,并且继续执行后面的代码。
/**三个按钮(覆盖,忽略,取消)对话框的创建*/
new AlertDialog.Builder(this).setTitle()
.setPositiveButton()
.setNeutralButton(…, …)
.setNegativeButton().show()
注意:
1、 setPositiveButton(),setNeutralButton(),setNegativeButton()的调用顺序可以是任意的,但无论调用顺序是什么,setPositiveButton()方法设置的按钮总会排在左起第1位,setNeutralButton()方法设置的按钮总会排在左起第2位,setNegativeButton()方法设置的按钮总会排在左起第3位。
2、 使用AlertDialog类创建的对话框最多只能有3个按钮。
3、 这3个按钮的方法虽然可以被调用多次,但系统只以每一个方法最后一次调用为准。(前面的会自动被覆盖)
简单列表对话框
final String[] str=new String[] { "你好1", "你好2", "你好3" };
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).setItems(str,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0,int which) {
/**使用which返回你所点击的内容*/
final AlertDialog ad=new AlertDialog.Builder(MainActivity.this).setMessage("您选择了: "+which+str[which]).show();
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
/**ad变量要使用final关键字定义,因为在隐式实现Runnable接口的run方法中需要访问final变量*/
/**调用AlertDialog类的dismiss方法关闭对话框,也可以调用cancel方法*/
ad.dismiss();
}
},5000);
}
}).create();
dialog.show();
在DialogInfterface接口中,有两个用于关闭对话框的方法:dismiss和cancel。这两个方法的功能完全相同,都是关闭框。所不同的是,cancel方法除了关闭对话框外,还会调用DialogInterface.onCancleListener接口中的onCancel方法。DialogInterface.onCancelListener对象需要使用AlertDialog.Builder类中的setOnCancelListener方法进行设置。dismiss方法和cancel方法类似,会调用DialogInterface.onDismissListener接口中的onDismiss方法。
分享到:
相关推荐
1、从Activity的TextView中获取字符串设置到AlertDialog的TextView和EditText中 2、将AlertDialog的EditText中的值设置到Activity的TextView中 新手在自定义AlertDialog上的疑问笔者猜测主要有两个: 1、自定义的...
`AlertDialog`是Android系统中的一个基础对话框组件,用于展示重要的信息或进行简单的用户交互。本篇文章将深入讲解如何通过自定义`style`来改变`AlertDialog`的样式,包括其背景图片、按钮图片、标题样式、标题栏...
在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的重要组件,它可以在需要用户确认、选择或者输入信息时弹出。`AlertDialog`的基本结构包括标题、消息内容、按钮等部分,通常有“确定”、“取消”等...
在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的重要组件,它可以在当前活动(Activity)上显示一个模态对话框,用于展示信息、询问用户或接收用户输入。`AlertDialog`通常用于呈现警告、确认操作...
在Android开发中,`AlertDialog`是一种常见的用户交互组件,它用于显示重要的信息或者需要用户做出决定的情况。在很多场景下,我们希望在弹出`AlertDialog`时,背景界面被一个半透明的遮罩层覆盖,以突出对话框并...
在Android开发中,`AlertDialog`是一种非常常用的组件,用于向用户展示重要的信息或者进行简单的交互。`AlertDialog`大全主要涵盖如何创建、定制以及管理对话框的各个方面。在Android应用程序中,对话框通常用来中断...
在Android开发中,`AlertDialog`是用户界面(UI)设计中的一个重要组件,它用于向用户显示重要的信息或者需要用户做出决策的情况。`AlertDialog`提供了多种类型的对话框,以适应不同的交互场景。这篇描述中提到的...
在Android开发中,`AlertDialog`是一个非常常用的组件,它用于向用户显示重要的警告或提示信息。这个`警告框AlertDialog的demo`是专为初学者设计的,帮助他们理解和掌握如何在应用程序中创建和使用`AlertDialog`。...
在Android开发中,`AlertDialog`是用户界面设计中不可或缺的一部分,它用于展示重要的信息或进行交互操作。`AlertDialog`提供了一种比普通的`Toast`更加强调、比`Activity`更为轻量级的对话方式。本篇文章将深入探讨...
在Android应用开发中,`AlertDialog`是一个至关重要的组件,它用于显示警告、确认或提供用户选择的对话框。本教程将深入探讨如何在Android应用程序中有效地使用`AlertDialog`,并结合实际例子进行详细讲解。 首先,...
在Android开发中,`AlertDialog`是一个非常常用的组件,它用于展示警告、确认或者提供用户选择的对话框。本文将深入探讨`AlertDialog`的源码,理解其内部工作原理以及如何自定义和使用。 首先,`AlertDialog`是`...
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.MyAlertDialogStyle); builder.setTitle("Title") .setMessage("Message") .setPositiveButton("OK", null) .show(); ``` 在styles....
其中,`AlertDialog`是最常用的一种对话框类型,它提供了丰富的自定义选项来创建不同样式的对话框。下面将详细介绍如何在Android应用中创建并显示一个`AlertDialog`对话框。 ### 创建AlertDialog #### 1. 导入必要...
在Android应用开发中,`AlertDialog`是一个非常重要的组件,它用于显示一个对话框来与用户进行交互。在本文中,我们将深入探讨如何在Android Studio中使用`AlertDialog`创建多选对话框,以及相关的知识点。 首先,`...
在Android开发中,`AlertDialog`是系统提供的一种用于与用户交互的原生对话框,它通常用于显示警告、确认信息或者获取用户输入等场景。然而,系统默认的`AlertDialog`样式有时不能满足开发者的设计需求,这时我们就...