参考网站:http://www.oschina.net/question/54100_32486
在Android开发中,界面上弹出一些对话框,总共可以分为以下7种形式:
1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。

创建dialog对话框方法代码如下:
01 | protected void dialog() { |
02 | AlertDialog.Builder builder = new Builder(Main.this); |
03 | builder.setMessage("确认退出吗?"); |
04 | builder.setTitle("提示"); |
05 | builder.setPositiveButton("确认", new OnClickListener() { |
07 | public void onClick(DialogInterface dialog, int which) { |
12 | builder.setNegativeButton("取消", new OnClickListener() { |
14 | public void onClick(DialogInterface dialog, int which) { |
18 | builder.create().show(); |
在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
1 | public boolean onKeyDown(int keyCode, KeyEvent event) { |
2 | if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { |
2.改变了对话框的图表,添加了三个按钮

创建dialog的方法代码如下:
01 | Dialog dialog = new AlertDialog.Builder(this).setIcon( |
02 | android.R.drawable.btn_star).setTitle("喜好调查").setMessage( |
03 | "你喜欢李连杰的电影吗?").setPositiveButton("很喜欢", |
04 | new OnClickListener() { |
06 | public void onClick(DialogInterface dialog, int which) { |
08 | Toast.makeText(Main.this, "我很喜欢他的电影。", |
09 | Toast.LENGTH_LONG).show(); |
11 | }).setNegativeButton("不喜欢", new OnClickListener() { |
13 | public void onClick(DialogInterface dialog, int which) { |
15 | Toast.makeText(Main.this, "我不喜欢他的电影。", Toast.LENGTH_LONG) |
18 | }).setNeutralButton("一般", new OnClickListener() { |
20 | public void onClick(DialogInterface dialog, int which) { |
22 | Toast.makeText(Main.this, "谈不上喜欢不喜欢。", Toast.LENGTH_LONG) |
3.信息内容是一个简单的View类型

创建dialog方法的代码如下:
1 | new AlertDialog.Builder(this).setTitle("请输入").setIcon( |
2 | android.R.drawable.ic_dialog_info).setView( |
3 | new EditText(this)).setPositiveButton("确定", null) |
4 | .setNegativeButton("取消", null).show(); |
4.信息内容是一组单选框

创建dialog方法的代码如下:
1 | new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems( |
2 | new String[] { "Item1", "Item2" }, null, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case 0: break; case 1: break; default: break; } }) |
3 | .setPositiveButton("确定", null) |
4 | .setNegativeButton("取消", null).show(); |
5.信息内容是一组多选框

创建dialog方法的代码如下:
1 | new AlertDialog.Builder(this).setTitle("单选框").setIcon( |
2 | android.R.drawable.ic_dialog_info).setSingleChoiceItems( |
3 | new String[] { "Item1", "Item2" }, 0, |
4 | new DialogInterface.OnClickListener() { |
5 | public void onClick(DialogInterface dialog, int which) { |
8 | }).setNegativeButton("取消", null).show(); |
6.信息内容是一组简单列表项

创建dialog的方法代码如下:
void chooseWay() {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle(R.string.consultant_way);
String[] items = {getString( "Item1", "Item2")};
b.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
break;
case 1:
break;
default:
break;
}
}
});
b.create().show();
}
信息内容是一个自定义的布局

dialog布局文件代码如下:
01 | <?xml version="1.0" encoding="utf-8"?> |
04 | android:layout_height="wrap_content" android:layout_width="wrap_content" |
05 | android:background="#ffffffff" android:orientation="horizontal" |
06 | android:id="@+id/dialog"> |
07 | <TextView android:layout_height="wrap_content" |
08 | android:layout_width="wrap_content" |
09 | 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"/> |
创建dialog方法的代码如下:
1 | LayoutInflater inflater = getLayoutInflater(); |
2 | View layout = inflater.inflate(R.layout.dialog, |
3 | (ViewGroup) findViewById(R.id.dialog)); |
4 | new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout) |
5 | .setPositiveButton("确定", null) |
6 | .setNegativeButton("取消", null).show(); |
以上7种Android dialog对话框的使用方法.