Android手机开发:Dialog的使用


1. 只含有OK和Cancel按钮的Dialog

  1. private Dialog buildDialog1(Context context) {  
  2.     AlertDialog.Builder builder = new AlertDialog.Builder(context);  
  3.     builder.setIcon(R.drawable.alert_dialog_icon);  
  4.     builder.setTitle(R.string.alert_dialog_two_buttons_title);  
  5.     builder.setPositiveButton(R.string.alert_dialog_ok,  
  6.             new DialogInterface.OnClickListener() {  
  7.                 public void onClick(DialogInterface dialog, int whichButton) {  
  8.   
  9.                     setTitle("点击了对话框上的确定按钮");  
  10.                 }  
  11.             });  
  12.     builder.setNegativeButton(R.string.alert_dialog_cancel,  
  13.             new DialogInterface.OnClickListener() {  
  14.                 public void onClick(DialogInterface dialog, int whichButton) {  
  15.   
  16.                     setTitle("点击了对话框上的取消按钮");  
  17.                 }  
  18.             });  
  19.     return builder.create();  
  20. }  
2. 含有3个按钮的Dialog
  1. private Dialog buildDialog2(Context context) {  
  2.     AlertDialog.Builder builder = new AlertDialog.Builder(context);  
  3.     builder.setIcon(R.drawable.alert_dialog_icon);  
  4.     builder.setTitle(R.string.alert_dialog_two_buttons_msg);  
  5.     builder.setMessage(R.string.alert_dialog_two_buttons2_msg);  
  6.     builder.setPositiveButton(R.string.alert_dialog_ok,  
  7.             new DialogInterface.OnClickListener() {  
  8.                 public void onClick(DialogInterface dialog, int whichButton) {  
  9.   
  10.                     setTitle("点击了对话框上的确定按钮");  
  11.                 }  
  12.             });  
  13.     builder.setNeutralButton(R.string.alert_dialog_something,  
  14.             new DialogInterface.OnClickListener() {  
  15.                 public void onClick(DialogInterface dialog, int whichButton) {  
  16.   
  17.                     setTitle("点击了对话框上的进入详细按钮");  
  18.                 }  
  19.             });  
  20.     builder.setNegativeButton(R.string.alert_dialog_cancel,  
  21.             new DialogInterface.OnClickListener() {  
  22.                 public void onClick(DialogInterface dialog, int whichButton) {  
  23.   
  24.                     setTitle("点击了对话框上的取消按钮");  
  25.                 }  
  26.             });  
  27.     return builder.create();  
  28. }  
3. 包含OK和Cancel按钮,以及一个View的Dialog
  1. private Dialog buildDialog3(Context context) {  
  2.     LayoutInflater inflater = LayoutInflater.from(this);  
  3.     final View textEntryView = inflater.inflate(  
  4.             R.layout.alert_dialog_text_entry, null);  
  5.     AlertDialog.Builder builder = new AlertDialog.Builder(context);  
  6.     builder.setIcon(R.drawable.alert_dialog_icon);  
  7.     builder.setTitle(R.string.alert_dialog_text_entry);  
  8.     builder.setView(textEntryView);  
  9.     builder.setPositiveButton(R.string.alert_dialog_ok,  
  10.             new DialogInterface.OnClickListener() {  
  11.                 public void onClick(DialogInterface dialog, int whichButton) {  
  12.                     setTitle("点击了对话框上的确定按钮");  
  13.                 }  
  14.             });  
  15.     builder.setNegativeButton(R.string.alert_dialog_cancel,  
  16.             new DialogInterface.OnClickListener() {  
  17.                 public void onClick(DialogInterface dialog, int whichButton) {  
  18.                     setTitle("点击了对话框上的取消按钮");  
  19.                 }  
  20.             });  
  21.     return builder.create();  
  22. }  
R.layout.alert_dialog_text_entry定义如下:
  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" android:layout_height="wrap_content"  
  4.     android:orientation="vertical">  
  5.   
  6.     <TextView android:id="@+id/username_view"  
  7.         android:layout_height="wrap_content"  
  8.         android:layout_width="wrap_content" android:layout_marginLeft="20dip"  
  9.         android:layout_marginRight="20dip" android:text="用户名"  
  10.         android:textAppearance="?android:attr/textAppearanceMedium" />  
  11.   
  12.     <EditText android:id="@+id/username_edit"  
  13.         android:layout_height="wrap_content"  
  14.         android:layout_width="fill_parent" android:layout_marginLeft="20dip"  
  15.         android:layout_marginRight="20dip" android:capitalize="none"  
  16.         android:textAppearance="?android:attr/textAppearanceMedium" />  
  17.   
  18.     <TextView android:id="@+id/password_view"  
  19.         android:layout_height="wrap_content"  
  20.         android:layout_width="wrap_content" android:layout_marginLeft="20dip"  
  21.         android:layout_marginRight="20dip" android:text="密码"  
  22.         android:textAppearance="?android:attr/textAppearanceMedium" />  
  23.   
  24.     <EditText android:id="@+id/password_edit"  
  25.         android:layout_height="wrap_content"  
  26.         android:layout_width="fill_parent" android:layout_marginLeft="20dip"  
  27.         android:layout_marginRight="20dip" android:capitalize="none"  
  28.         android:password="true"  
  29.         android:textAppearance="?android:attr/textAppearanceMedium" />  
  30.   
  31. </LinearLayout>  
4. 直接使用ProgressDialog
  1. private Dialog buildDialog4(Context context) {  
  2.     ProgressDialog dialog = new ProgressDialog(context);  
  3.     dialog.setTitle("正在下载歌曲");  
  4.     dialog.setMessage("请稍候……");  
  5.     return  dialog;  
  6. }  

相关内容