Android 对话框(Dialog)

绥江一百http://www.sj100.net                                         欢迎,进入绥江一百感谢点击[我的小网站,请大家多多指教相互共勉]

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

1、主窗体图1的实现,在Lanyout中添加7个按钮,代码如下所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="horizontal" >
 6     <Button
 7         android:id="@+id/But_One"
 8         android:layout_width="wrap_content"
 9         android:layout_height="wrap_content"
10         android:layout_weight="20"
11         android:text="1" />
12     <Button
13         android:id="@+id/But_Two"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:layout_weight="20"
17         android:text="2" />
18     <Button
19         android:id="@+id/But_Three"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:layout_weight="20"
23         android:text="3" />
24     <Button
25         android:id="@+id/But_Four"
26         android:layout_width="wrap_content"
27         android:layout_height="wrap_content"
28         android:layout_weight="20"
29         android:text="4" />
30     <Button
31         android:id="@+id/But_Five"
32         android:layout_width="wrap_content"
33         android:layout_height="wrap_content"
34         android:layout_weight="20"
35         android:text="5" />
36     <Button
37         android:id="@+id/But_Six"
38         android:layout_width="wrap_content"
39         android:layout_height="wrap_content"
40         android:layout_weight="20"
41         android:text="6" />
42     <Button
43         android:id="@+id/But_Seven"
44         android:layout_width="wrap_content"
45         android:layout_height="wrap_content"
46         android:layout_weight="20"
47         android:text="7" />
48 </LinearLayout>
main.xml
 1 package zqvie.com;
 2 import android.app.Activity;
 3 import android.app.AlertDialog;
 4 import android.app.AlertDialog.Builder;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.widget.Button;
 9 
10 public class DialogActivity extends Activity implements OnClickListener {
11     /** Called when the activity is first created. */
12     @Override
13     public void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.main);
16         But_One=(Button) findViewById(R.id.But_One);     //注册按钮But_One
17         But_Two=(Button) findViewById(R.id.But_Two);   
18         But_Three=(Button) findViewById(R.id.But_Three);
19         But_Four=(Button) findViewById(R.id.But_Four);
20         But_Five=(Button) findViewById(R.id.But_Five);
21         But_Six=(Button) findViewById(R.id.But_Six);
22         But_Seven=(Button) findViewById(R.id.But_Seven);
23         But_One.setOnClickListener(this);                //为按钮But_One注册侦听器
24     }
25 Button But_One,But_Two,But_Three,But_Four,But_Five,But_Six,But_Seven;  //定义按钮
26 }
DialogActivity.java

2、图2的实现,设置单击“按钮1”时,弹出对话框,代码如下所示:

 public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v.getId()==R.id.But_One)
        {
            AlertDialog.Builder builder=new AlertDialog.Builder(DialogActivity .this);//生成一个对话框对象
            builder.setMessage("确定要退出吗?");   //设置对话框的显示信息
            builder.setTitle("提示");           //设置对话框的标题
            builder.setPositiveButton("确定",null);  //设置第一个按钮的Text,null处也可替换为new OnClickListener() {}
            builder.setNegativeButton("取消",null);   //设置第二个按钮的Text
            builder.create().show();                    //创建并显示对话框
        }
    }

 3、图3的实现,设置单击“按钮2”时,弹出对话框,代码和效果图2如下所示:

if(v.getId()==R.id.But_Two)
        {
            AlertDialog.Builder builder= new AlertDialog.Builder(DialogActivity.this);//生成一个对话框对象
            builder.setIcon( android.R.drawable.btn_star);//设置对话框的图标
            builder.setTitle("喜好调查");                  //设置对话的标题
            builder.setMessage("你喜欢李连杰的电影吗");   //设置对话框的显示信息
            builder.setPositiveButton("很喜欢",null);
            builder.setNeutralButton("一般",null);
            builder.setNegativeButton("不喜欢",null);
            builder.create().show();
        }

 4、图4的实现,设置单击“按钮3”时,弹出对话框,代码和效果图3如下所示:

 1 if(v.getId()==R.id.But_Three)
 2         {
 3             AlertDialog.Builder builder=new AlertDialog.Builder(this);
 4             builder.setTitle("请输入");
 5             builder.setIcon(android.R.drawable.ic_dialog_info);   //设置对话框的图标
 6             builder.setView(new EditText(this));      //设置对话框中显示一个输入框
 7             builder.setPositiveButton("确定",null);
 8             builder.setNegativeButton("取消",null);
 9             builder.show();
10         }

 5、图5的实现,设置单击“按钮4”时,弹出对话框,代码和效果图4如下所示:

1 if(v.getId()==R.id.But_Four)
2         {
3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
4             builder.setTitle("单选框");   //设置对话框的标题
5             builder.setIcon(android.R.drawable.ic_dialog_info);  //设置对话框的图标
6             builder.setSingleChoiceItems( new String[] { "Item1", "Item2" }, 0,null);  //设置对话框的单选项
7             builder.setNegativeButton("取消", null);
8             builder.create().show();
9         }

 6、图6的实现,设置单击“按钮5”时,弹出对话框,代码和效果图5如下所示:

1 if(v.getId()==R.id.But_Five)
2         {
3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
4             builder.setTitle("复选框");                  //设置对话框的标题
5             builder.setMultiChoiceItems( new String[] { "Item1", "Item2" }, null, null); //设置对话框的复选项
6             builder.setPositiveButton("确定", null); //设置对话框的第一个按钮"确定"
7             builder.setNegativeButton("取消", null); //设置对话框的第二个按钮"取消"
8             builder.show();
9         }

 7、图7的实现,设置单击“按钮6”时,弹出对话框,代码和效果图6如下所示:

1 if(v.getId()==R.id.But_Six)
2         {
3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
4             builder.setTitle("列表框");
5             builder.setItems(new String[]{"Item1","Item2"},null);
6             builder.setNegativeButton("确定",null);
7             builder.create().show();
8         }

 8、图8的实现,设置单击“按钮7”时,弹出自定义对话框,这种对话框相对上面讲的要复杂一些,它需要通过一个.xml文件来传递你要呈现的布局。代码和效果图7如下所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_height="wrap_content" android:layout_width="wrap_content"
 4  android:background="#ffffffff" android:orientation="horizontal"
 5  android:id="@+id/mydialog">
 6  <TextView android:layout_height="wrap_content"
 7    android:layout_width="wrap_content"
 8   android:id="@+id/tvname" android:text="姓名:" />
 9  <EditText android:layout_height="wrap_content"
10   android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
11 
12 </LinearLayout>
dialog.xml
 1 if(v.getId()==R.id.But_Seven)
 2         {
 3             LayoutInflater inflater = getLayoutInflater();
 4                View layout = inflater.inflate(R.layout.mydialog,
 5                  null);
 6              
 7                new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
 8                  .setPositiveButton("确定", null)
 9                  .setNegativeButton("取消", null).show();
10         }
DialogActivity.java

感悟

     学习了制作对话框,才发现其实对话框的制作也是非常简单的,一般情况下只需设置对话框的标题、信息、图标、按钮即可,有的时候还需要添加文本框、单选按钮、复选框、列表项。然而比较复杂的情况就是自定义对话框。在设置自定义对话框的时候,需要设计一个你的xml文件,里面是你的自定义布局,然后通过,主窗体调用xml来实现自定义对话框的制作。

 

原文地址:https://www.cnblogs.com/zengqin/p/3082845.html