Android Dialog对话框的七种形式的使用

参考资料:http://www.oschina.net/question/54100_32486

注:代码进行了整理

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助。

1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。

 

 1 //一般的Dialog
 2     public void normalDialog(){
 3     AlertDialog.Builder bulider =new Builder(MainActivity.this);
 4     bulider.setIcon(R.drawable.ic_launcher);//在title的左边显示一个图片
 5     bulider.setTitle("提示");
 6     bulider.setMessage("你确定你要关掉它?");
 7     bulider.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 8         
 9         @Override
10         public void onClick(DialogInterface dialog, int arg1) {
11             dialog.dismiss();
12             MainActivity.this.finish();
13             
14         }
15     });
16     bulider.setNegativeButton("取消", new DialogInterface.OnClickListener() {
17         
18         @Override
19         public void onClick(DialogInterface dialog, int arg1) {
20             // TODO Auto-generated method stub
21             dialog.dismiss();
22         }
23     });
24     bulider.create().show();
25     
26 }
 1 new AlertDialog.Builder(MachineRegister.this)
 2                         .setTitle("提示")
 3                         .setMessage("设备注册成功")
 4                         .setPositiveButton("确定",
 5                                 new DialogInterface.OnClickListener() {
 6 
 7                                     public void onClick(DialogInterface dialog,
 8                                             int which) {
 9                                         // TODO Auto-generated method                                   
11 
12                                     }
13                                     //当点击返回时,就停留在本界面
14                                 })
15                          .setNegativeButton("返回", 
16                                  new DialogInterface.OnClickListener() {
17 
18                                         public void onClick(DialogInterface dialog,
19                                                 int which) {
20                                          
21                                         }
22                             
23 
24                                     }).show();

 2.改变了对话框的图表,添加了三个按钮

 1 //三个按钮的对话框
 2     public void sanDialog(){
 3         AlertDialog.Builder bulider =new Builder(MainActivity.this);
 4         bulider.setIcon(R.drawable.ic_launcher);//在title的左边显示一个图片
 5         bulider.setTitle("提示");
 6         bulider.setMessage("你确定你要关掉它?");
 7         //最左边的按钮(positive :积极地)
 8         bulider.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 9             
10             @Override
11             public void onClick(DialogInterface dialog, int arg1) {
12                 dialog.dismiss();
13                 MainActivity.this.finish();
14                 
15             }
16         });
17         //最右边的钮(negative:消极的)
18         bulider.setNegativeButton("取消", new DialogInterface.OnClickListener() {
19             
20             @Override
21             public void onClick(DialogInterface dialog, int arg1) {
22                 // TODO Auto-generated method stub
23                 dialog.dismiss();
24             }
25         });
26         //中间的钮
27         bulider.setNeutralButton("逗你玩", new DialogInterface.OnClickListener() {
28             
29             @Override
30             public void onClick(DialogInterface arg0, int arg1) {
31                 // TODO Auto-generated method stub
32                 
33             }
34         });
35         bulider.create().show();
36         
37         
38     }  

 3.信息内容是一个简单的View类型

 1 //信息内容是一个简单的View类型
 2     public void shuruDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("请输入");
 6         
 7         //放进去任意简单的view
 8         builder.setView(new EditText(this));  
 9         builder.setPositiveButton("确定", null);
10         builder.setNegativeButton("取消", null);
11         
12         builder.create().show();
13     }

 4.信息内容是一组单选框

 1 //信息内容是单选框
 2     public void danxuanDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("单选框");
 6           //定义单选框        
 7         builder.setSingleChoiceItems(new String[]{"item1","item2"} ,0, new DialogInterface.OnClickListener() {
 8             
 9             @Override
10             public void onClick(DialogInterface arg0, int arg1) {
11                 //对选择项绑定事件
12                 
13             }
14         }); 
15         builder.setNegativeButton("取消", null);
16         
17         builder.create().show();
18     }

 5.信息内容是一组多选框

 1  //信息内容是复选框
 2     public void fuxuanDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("复选框");
 6           //定义复选框        
 7         builder.setMultiChoiceItems(new String[]{"item1","item2"}, null, null);
 8         builder.setPositiveButton("确定", null);        
 9         builder.setNegativeButton("取消", null);
10         
11         builder.create().show();
12     }

 6.信息内容是一组简单列表项

 1  //信息内容是简单地列表项
 2     
 3     public void liebiaoDialog(){
 4         AlertDialog.Builder builder =new Builder(MainActivity.this);
 5         builder.setIcon(R.drawable.ic_launcher);
 6         builder.setTitle("列表项");
 7           //定义复选框        
 8         builder.setItems(new String[]{"item1","item2"}, null);
 9         builder.setPositiveButton("确定", null);        
10         builder.setNegativeButton("取消", null);
11         
12         builder.create().show();
13     }

 7.信息内容是一个自定义的布局

 dialog布局文件代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2  
 3   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4    android:layout_height="wrap_content" android:layout_width="wrap_content"
 5    android:background="#ffffffff" android:orientation="horizontal"
 6    android:id="@+id/dialog">
 7    <TextView android:layout_height="wrap_content"
 8      android:layout_width="wrap_content"
 9     android:id="@+id/tvname" android:text="姓名:" />
10    <EditText android:layout_height="wrap_content"
11     android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
12   </LinearLayout>

 创建dialog方法的代码如下:

LayoutInflater inflater = getLayoutInflater();
     View layout = inflater.inflate(R.layout.dialog,
       (ViewGroup) findViewById(R.id.dialog));
     new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
       .setPositiveButton("确定", null)
       .setNegativeButton("取消", null).show();

 好了,以上7种Android dialog对话框的使用方法就介绍到这里了,基本都全了,如果大家在android开发过程中遇到dialog的时候就可以拿出来看看。


注意:在使用dialog增加按钮选项的时候,

 bulider.setPositiveButton("确定", new DialogInterface.OnClickListener() {
应该是红色字体部分,而写成:
bulider.setPositiveButton("确定", new OnClickListener() {
往往会报错,详细·····
我是刚刚进入公司的Android实习生,菜鸟一枚,博客记录我犯过的错,收获的东西,学到的知识和技术,可能里面会有很多错误的地方,幼稚的地方,欢迎大家指出来,帮助我进步,但请别伤害我,我只是菜鸟一枚,我在努力争取进步。
原文地址:https://www.cnblogs.com/smilefortoday/p/3977412.html