(1)首先我们写个简单的AlertDialog对话框,要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法,然后创建对话框可以设置对话框的属性,比如设置标题、图标、内容等等。
修改下MainActivity.java方法(Android Studio工具下):
1 package com.example.administrator.dialog1;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.app.AlertDialog.Builder;
6 import android.app.AlertDialog;
7
8 public class MainActivity extends Activity {
9
10 @Override
11 protected void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.activity_main);
14
15 //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
16 Builder alertdialog = new AlertDialog.Builder(this);
17 alertdialog.setTitle("简单对话框"); //设置标题
18 alertdialog.setMessage("从前有个人,他很冷,最后他冷死了。"); //设置内容
19 alertdialog.setIcon(R.mipmap.ic_launcher); //设置图标
20 alertdialog.create();
21 alertdialog.show();
22 }
23
24
25 }
运行效果:
(2) 接下来我们来设置带按钮的AlertDialog,代码如下:
1 package com.example.administrator.dialog1;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.app.AlertDialog.Builder;
6 import android.app.AlertDialog;
7 import android.content.DialogInterface;
8
9 public class MainActivity extends Activity {
10
11 @Override
12 protected void onCreate(Bundle savedInstanceState) {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.activity_main);
15 //
16 // //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
17 // Builder alertdialog = new AlertDialog.Builder(this);
18 // alertdialog.setTitle("简单对话框"); //设置标题
19 // alertdialog.setMessage("从前有个人,他很冷,最后他冷死了。"); //设置内容
20 // alertdialog.setIcon(R.mipmap.ic_launcher); //设置图标
21 // alertdialog.create();
22 // alertdialog.show();
23
24 Builder dialog = new AlertDialog.Builder(this);
25 dialog.setTitle("确定删除?");
26 dialog.setMessage("您确定删除该条信息吗?");
27 dialog.setIcon(R.mipmap.ic_launcher);
28
29 //为“取消”按钮注册监听事件
30 dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
31 @Override
32 public void onClick(DialogInterface dialog, int which) {
33 //...
34 }
35 });
36
37 //为“查看详情”按钮注册监听事件
38 dialog.setNeutralButton("查看详情", new DialogInterface.OnClickListener() {
39 @Override
40 public void onClick(DialogInterface dialog, int which) {
41 //...
42 }
43 });
44
45 //为“确定”按钮注册监听事件
46 dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
47 @Override
48 public void onClick(DialogInterface dialog, int which) {
49 //...
50 }
51 });
52
53 dialog.create();
54 dialog.show();
55 }
56
57
58 }
运行效果:
说明:setPositiveButton(),setNegativeButton(),setNeutralButton()方法分别用来设置确定按钮、取消按钮、中间按钮的一些属性,在Android2.3 以下平台中,三按钮的位置是相对固定的,分别置于最左侧,最右侧和居中,但在Android4.0以上平台下,setPositiveButton和setNegativeButton位置恰恰相反,分别置于最右侧和最左侧。
(3)带有单选按钮或者复选按钮的AlertDialog对话框
直接上代码:
1 package com.example.administrator.dialog1;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.app.Dialog;
6 import android.app.AlertDialog.Builder;
7 import android.app.AlertDialog;
8 import android.content.DialogInterface;
9 import android.widget.Toast;
10
11 public class MainActivity extends Activity {
12
13 private int selectedCityIndex = 0;
14
15 @Override
16 protected void onCreate(Bundle savedInstanceState) {
17 super.onCreate(savedInstanceState);
18 setContentView(R.layout.activity_main);
19
20 //定义城市数组
21 final String[] arrayCity = new String[] { "北京", "上海", "广州", "深圳" };
22
23 //实例化AlertDialog对话框
24 Dialog alertDialog = new AlertDialog.Builder(this)
25 .setTitle("你最喜欢哪个地方?") //设置标题
26 .setIcon(R.mipmap.ic_launcher) //设置图标
27 // 设置对话框显示一个单选List,指定默认选中项,同时设置监听事件处理
28 .setSingleChoiceItems(arrayCity, 0, new DialogInterface.OnClickListener() {
29
30 @Override
31 public void onClick(DialogInterface dialog, int which) {
32 selectedCityIndex = which; //选中项的索引保存到选中项变量
33 }
34 })
35 //添加取消按钮并增加监听处理
36 .setNegativeButton("取消", new DialogInterface.OnClickListener() {
37 @Override
38 public void onClick(DialogInterface dialog, int which) {
39 // TODO Auto-generated method stub
40 }
41 })
42 //添加确定按钮并增加监听处理
43 .setPositiveButton("确认", new DialogInterface.OnClickListener() {
44 @Override
45 public void onClick(DialogInterface dialog, int which) {
46 Toast.makeText(getApplication(), arrayCity[selectedCityIndex], Toast.LENGTH_SHORT).show();
47 }
48 })
49 .create();
50 alertDialog.show();
51 }
52
53 }
说明:setSingleChoiceItems(CharSequence[] items, int checkedItem,final OnClickListener listener)方法来实现类似ListView的AlertDialog,第一个参数是要显示的数据的数组,第二个参数指定默认选中项,第三个参数设置监听处理事件。
运行效果: