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