11.Android之常用对话框AlertDialog学习

(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,第一个参数是要显示的数据的数组,第二个参数指定默认选中项,第三个参数设置监听处理事件。

运行效果:

     

原文地址:https://www.cnblogs.com/benchao/p/5077832.html