【绥江一百】http://www.sj100.net 欢迎,进入绥江一百感谢点击[我的小网站,请大家多多指教相互共勉]
在Android开发中,我们经常会需要在界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,据我所知,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7Android Dialog对话框的使用方法,希望对大家能有所帮助。 图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>

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 }
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>

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