android Dialog 各种Dialog 三个选项的、进度条的、单选的、多选的、自定义的对话框

本文出自:http://blog.csdn.net/wanzdhan/article/details/7024834

文字就不说了,直接上代码。

1.三个选项Dialog.

效果图如下:

 

 

  1. /**  
  2.     * 三个选项的Dialog  
  3.     */  
  4.    private void threeDialog(){  
  5.     AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  6.     builder.setIcon(R.drawable.ic_launcher);  
  7.     builder.setTitle("带进度条的Dialog");  
  8.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  9.           
  10.         @Override  
  11.         public void onClick(DialogInterface dialog, int which) {  
  12.             // TODO Auto-generated method stub  
  13.             Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();  
  14.         }  
  15.     });  
  16.     builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {  
  17.           
  18.         @Override  
  19.         public void onClick(DialogInterface dialog, int which) {  
  20.             // TODO Auto-generated method stub  
  21.             Toast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();  
  22.         }  
  23.     });  
  24.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  25.           
  26.         @Override  
  27.         public void onClick(DialogInterface dialog, int which) {  
  28.             // TODO Auto-generated method stub  
  29.             Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();  
  30.         }  
  31.     });  
  32.     builder.create().show();  
  33.    }  


二、进度条Dialog。

代码:

  1. /**  
  2.     * 进度条Dialog  
  3.     */  
  4.    private void progressDialog(){  
  5.     mProgress = new ProgressDialog(mContext);  
  6.     mProgress.setIcon(R.drawable.ic_launcher);  
  7.     mProgress.setTitle("带进度条的Dialog");  
  8.     mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  9.     mProgress.setButton("确定", new DialogInterface.OnClickListener() {  
  10.           
  11.         @Override  
  12.         public void onClick(DialogInterface dialog, int which) {  
  13.             // TODO Auto-generated method stub  
  14.             Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();  
  15.         }  
  16.     });  
  17.     mProgress.setButton2("取消", new DialogInterface.OnClickListener() {  
  18.           
  19.         @Override  
  20.         public void onClick(DialogInterface dialog, int which) {  
  21.             // TODO Auto-generated method stub  
  22.             Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();  
  23.         }  
  24.     });  
  25.   
  26.     mProgress.show();  
  27.     new Thread(new Runnable() {  
  28.         int progress = 0;  
  29.         @Override  
  30.         public void run() {  
  31.             // TODO Auto-generated method stub  
  32.             while (progress <= 100) {  
  33.                 mProgress.setProgress(progress);  
  34.                 try {  
  35.                     Thread.sleep(100);  
  36.                 } catch (InterruptedException e) {  
  37.                     // TODO Auto-generated catch block  
  38.                     e.printStackTrace();  
  39.                 }  
  40.                 progress++;  
  41.             }  
  42.         }  
  43.     }).start();  
  44.    }  


三、单选Dialog

  1. /**  
  2.     * 单选Dialog  
  3.     */  
  4.    private void simpleDialog(){  
  5.       
  6.     singleSelectedId = -1;  
  7.     AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  8.     builder.setIcon(R.drawable.ic_launcher);  
  9.     builder.setTitle("单选Dialog");  
  10.     builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {  
  11.         @Override  
  12.         public void onClick(DialogInterface dialog, int which) {  
  13.             // TODO Auto-generated method stub  
  14.             singleSelectedId = which;  
  15.             Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();  
  16.         }  
  17.     });  
  18.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  19.           
  20.         @Override  
  21.         public void onClick(DialogInterface dialog, int which) {  
  22.             // TODO Auto-generated method stub  
  23.             if (singleSelectedId >= 0) {  
  24.                 Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();  
  25.             } else {  
  26.                 singleSelectedId = 0;  
  27.                 // 业务逻辑  
  28.             }  
  29.         }  
  30.     });  
  31.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  32.           
  33.         @Override  
  34.         public void onClick(DialogInterface dialog, int which) {  
  35.             // TODO Auto-generated method stub  
  36.               
  37.         }  
  38.     });  
  39.     builder.create().show();  
  40.    }  


四、多选复选Dialog

  1. /**  
  2.     * 复选Dialog  
  3.     */  
  4.    private void chooseDialog(){  
  5.       
  6.     boolean[] selected = new boolean[items.length];  
  7.     for (int i = 0; i < selected.length; i++) {  
  8.         selected[i] = false;  
  9.     }  
  10.     AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  11.     builder.setIcon(R.drawable.ic_launcher);  
  12.     builder.setTitle("复选Dialog");  
  13.     builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {  
  14.           
  15.         @Override  
  16.         public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
  17.             // TODO Auto-generated method stub  
  18.             if (isChecked) {  
  19.                 list.add(which);  
  20.             } else {  
  21.                 list.remove(which);  
  22.             }  
  23.         }  
  24.     });  
  25.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  26.         String str = "你选择了:";  
  27.         @Override  
  28.         public void onClick(DialogInterface dialog, int which) {  
  29.             // TODO Auto-generated method stub  
  30.             for (int i = 0; i < list.size(); i++) {  
  31.                 str += " "+items[list.get(i)];  
  32.             }  
  33.             Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();  
  34.         }  
  35.     });  
  36.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  37.           
  38.         @Override  
  39.         public void onClick(DialogInterface dialog, int which) {  
  40.             // TODO Auto-generated method stub  
  41.               
  42.         }  
  43.     });  
  44.     builder.create().show();  
  45.    }  


五、自定义Dialog

 

  1. /**  
  2.     * 自定义Dialog  
  3.     */  
  4.    EditText username;  
  5.    EditText password;  
  6.    private void customDialog(){  
  7.       
  8.     AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  9.       
  10.     LayoutInflater flater = LayoutInflater.from(mContext);  
  11.     final View view = flater.inflate(R.layout.login, null);  
  12.       
  13.     builder.setIcon(R.drawable.ic_launcher);  
  14.     builder.setTitle("自定义Dialog");  
  15.     builder.setView(view);  
  16.     builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  17.           
  18.         @Override  
  19.         public void onClick(DialogInterface dialog, int which) {  
  20.             // TODO Auto-generated method stub  
  21.             username = (EditText) view.findViewById(R.id.username);  
  22.             password = (EditText) view.findViewById(R.id.pwd);  
  23.             Toast.makeText(mContext, ""+username.getText()+password.getText(), Toast.LENGTH_LONG).show();  
  24.         }  
  25.     });  
  26.     builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  27.           
  28.         @Override  
  29.         public void onClick(DialogInterface dialog, int which) {  
  30.             // TODO Auto-generated method stub  
  31.               
  32.         }  
  33.     });  
  34.     builder.create().show();  
  35.    }  


 

整体代码如下:

HelloDialogActivity.java:

  1. package com.covics.zfh;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. import android.app.Activity;  
  6. import android.app.AlertDialog;  
  7. import android.app.ProgressDialog;  
  8. import android.content.Context;  
  9. import android.content.DialogInterface;  
  10. import android.os.Bundle;  
  11. import android.text.style.BulletSpan;  
  12. import android.view.LayoutInflater;  
  13. import android.view.View;  
  14. import android.view.View.OnClickListener;  
  15. import android.widget.Button;  
  16. import android.widget.EditText;  
  17. import android.widget.Toast;  
  18.   
  19. public class HelloDialogActivity extends Activity implements OnClickListener {  
  20.       
  21.     private Button btnThree;  
  22.     private Button btnProgress;  
  23.     private Button btnSingle;  
  24.     private Button btnChoices;  
  25.     private Button btnCustom;  
  26.     private Context mContext;  
  27.     private ProgressDialog mProgress;  
  28.     private int singleSelectedId; // 单选ID  
  29.     private String[] items = {"item0", "item1", "item2", "item3", "item4", "item5"};  
  30.     private ArrayList<Integer> list;  
  31.       
  32.     /** Called when the activity is first created. */  
  33.     @Override  
  34.     public void onCreate(Bundle savedInstanceState) {  
  35.         super.onCreate(savedInstanceState);  
  36.         setContentView(R.layout.main);  
  37.         mContext = HelloDialogActivity.this;  
  38.         prepare();  
  39.          
  40.     }  
  41.     private void prepare(){  
  42.         btnThree = (Button)findViewById(R.id.btn_three);  
  43.         btnProgress = (Button)findViewById(R.id.btn_progress);  
  44.         btnSingle = (Button)findViewById(R.id.btn_dan);  
  45.         btnChoices = (Button)findViewById(R.id.btn_mus);  
  46.         btnCustom = (Button)findViewById(R.id.btn_custom);  
  47.         btnThree.setOnClickListener(this);  
  48.         btnProgress.setOnClickListener(this);  
  49.         btnSingle.setOnClickListener(this);  
  50.         btnChoices.setOnClickListener(this);  
  51.         btnCustom.setOnClickListener(this);  
  52.     }  
  53.     /**  
  54.      * 三个选项的Dialog  
  55.      */  
  56.     private void threeDialog(){  
  57.         AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  58.         builder.setIcon(R.drawable.ic_launcher);  
  59.         builder.setTitle("带进度条的Dialog");  
  60.         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  61.               
  62.             @Override  
  63.             public void onClick(DialogInterface dialog, int which) {  
  64.                 // TODO Auto-generated method stub  
  65.                 Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();  
  66.             }  
  67.         });  
  68.         builder.setNeutralButton("中间", new DialogInterface.OnClickListener() {  
  69.               
  70.             @Override  
  71.             public void onClick(DialogInterface dialog, int which) {  
  72.                 // TODO Auto-generated method stub  
  73.                 Toast.makeText(mContext, "中间", Toast.LENGTH_SHORT).show();  
  74.             }  
  75.         });  
  76.         builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  77.               
  78.             @Override  
  79.             public void onClick(DialogInterface dialog, int which) {  
  80.                 // TODO Auto-generated method stub  
  81.                 Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();  
  82.             }  
  83.         });  
  84.         builder.create().show();  
  85.     }  
  86.     /**  
  87.      * 进度条Dialog  
  88.      */  
  89.     private void progressDialog(){  
  90.         mProgress = new ProgressDialog(mContext);  
  91.         mProgress.setIcon(R.drawable.ic_launcher);  
  92.         mProgress.setTitle("带进度条的Dialog");  
  93.         mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  94.         mProgress.setButton("确定", new DialogInterface.OnClickListener() {  
  95.               
  96.             @Override  
  97.             public void onClick(DialogInterface dialog, int which) {  
  98.                 // TODO Auto-generated method stub  
  99.                 Toast.makeText(mContext, "确定", Toast.LENGTH_SHORT).show();  
  100.             }  
  101.         });  
  102.         mProgress.setButton2("取消", new DialogInterface.OnClickListener() {  
  103.               
  104.             @Override  
  105.             public void onClick(DialogInterface dialog, int which) {  
  106.                 // TODO Auto-generated method stub  
  107.                 Toast.makeText(mContext, "取消", Toast.LENGTH_SHORT).show();  
  108.             }  
  109.         });  
  110.   
  111.         mProgress.show();  
  112.         new Thread(new Runnable() {  
  113.             int progress = 0;  
  114.             @Override  
  115.             public void run() {  
  116.                 // TODO Auto-generated method stub  
  117.                 while (progress <= 100) {  
  118.                     mProgress.setProgress(progress);  
  119.                     try {  
  120.                         Thread.sleep(100);  
  121.                     } catch (InterruptedException e) {  
  122.                         // TODO Auto-generated catch block  
  123.                         e.printStackTrace();  
  124.                     }  
  125.                     progress++;  
  126.                 }  
  127.             }  
  128.         }).start();  
  129.     }  
  130.     /**  
  131.      * 单选Dialog  
  132.      */  
  133.     private void simpleDialog(){  
  134.           
  135.         singleSelectedId = -1;  
  136.         AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  137.         builder.setIcon(R.drawable.ic_launcher);  
  138.         builder.setTitle("单选Dialog");  
  139.         builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {  
  140.             @Override  
  141.             public void onClick(DialogInterface dialog, int which) {  
  142.                 // TODO Auto-generated method stub  
  143.                 singleSelectedId = which;  
  144.                 Toast.makeText(mContext, "你选择的ID为:"+which, Toast.LENGTH_SHORT).show();  
  145.             }  
  146.         });  
  147.         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  148.               
  149.             @Override  
  150.             public void onClick(DialogInterface dialog, int which) {  
  151.                 // TODO Auto-generated method stub  
  152.                 if (singleSelectedId >= 0) {  
  153.                     Toast.makeText(mContext, "你选择的ID为:"+singleSelectedId, Toast.LENGTH_SHORT).show();  
  154.                 } else {  
  155.                     singleSelectedId = 0;  
  156.                     // 业务逻辑  
  157.                 }  
  158.             }  
  159.         });  
  160.         builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  161.               
  162.             @Override  
  163.             public void onClick(DialogInterface dialog, int which) {  
  164.                 // TODO Auto-generated method stub  
  165.                   
  166.             }  
  167.         });  
  168.         builder.create().show();  
  169.     }  
  170.     /**  
  171.      * 复选Dialog  
  172.      */  
  173.     private void chooseDialog(){  
  174.           
  175.         boolean[] selected = new boolean[items.length];  
  176.         for (int i = 0; i < selected.length; i++) {  
  177.             selected[i] = false;  
  178.         }  
  179.         AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  180.         builder.setIcon(R.drawable.ic_launcher);  
  181.         builder.setTitle("复选Dialog");  
  182.         builder.setMultiChoiceItems(items, selected, new DialogInterface.OnMultiChoiceClickListener() {  
  183.               
  184.             @Override  
  185.             public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
  186.                 // TODO Auto-generated method stub  
  187.                 if (isChecked) {  
  188.                     list.add(which);  
  189.                 } else {  
  190.                     list.remove(which);  
  191.                 }  
  192.             }  
  193.         });  
  194.         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  195.             String str = "你选择了:";  
  196.             @Override  
  197.             public void onClick(DialogInterface dialog, int which) {  
  198.                 // TODO Auto-generated method stub  
  199.                 for (int i = 0; i < list.size(); i++) {  
  200.                     str += " "+items[list.get(i)];  
  201.                 }  
  202.                 Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();  
  203.             }  
  204.         });  
  205.         builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  206.               
  207.             @Override  
  208.             public void onClick(DialogInterface dialog, int which) {  
  209.                 // TODO Auto-generated method stub  
  210.                   
  211.             }  
  212.         });  
  213.         builder.create().show();  
  214.     }  
  215.     /**  
  216.      * 自定义Dialog  
  217.      */  
  218.     EditText username;  
  219.     EditText password;  
  220.     private void customDialog(){  
  221.           
  222.         AlertDialog.Builder builder = new AlertDialog.Builder(mContext);  
  223.           
  224.         LayoutInflater flater = LayoutInflater.from(mContext);  
  225.         final View view = flater.inflate(R.layout.login, null);  
  226.           
  227.         builder.setIcon(R.drawable.ic_launcher);  
  228.         builder.setTitle("自定义Dialog");  
  229.         builder.setView(view);  
  230.         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  231.               
  232.             @Override  
  233.             public void onClick(DialogInterface dialog, int which) {  
  234.                 // TODO Auto-generated method stub  
  235.                 username = (EditText) view.findViewById(R.id.username);  
  236.                 password = (EditText) view.findViewById(R.id.pwd);  
  237.                 Toast.makeText(mContext, ""+username.getText()+password.getText(), Toast.LENGTH_LONG).show();  
  238.             }  
  239.         });  
  240.         builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {  
  241.               
  242.             @Override  
  243.             public void onClick(DialogInterface dialog, int which) {  
  244.                 // TODO Auto-generated method stub  
  245.                   
  246.             }  
  247.         });  
  248.         builder.create().show();  
  249.     }  
  250.     @Override  
  251.     public void onClick(View v) {  
  252.         int id = v.getId();  
  253.         switch (id) {  
  254.         case R.id.btn_three : {  
  255.              threeDialog();  
  256.              break;  
  257.         }  
  258.         case R.id.btn_progress : {  
  259.             progressDialog();  
  260.             break;  
  261.         }  
  262.         case R.id.btn_dan: {  
  263.             simpleDialog();  
  264.             break;  
  265.         }  
  266.         case R.id.btn_mus : {  
  267.             list = new ArrayList<Integer>();  
  268.             chooseDialog();  
  269.             break;  
  270.         }  
  271.         case R.id.btn_custom : {  
  272.             customDialog();  
  273.             break;  
  274.         }  
  275.         default :  
  276.             break;  
  277.         }  
  278.           
  279.     }  
  280. }  


layout中文件:

main.xml

  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="vertical" >  
  6.   
  7.     <TextView  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:text="Dialog集合" />  
  11.     <Button   
  12.         android:id="@+id/btn_three"  
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:text="三个选项的Dialog"  
  16.         />  
  17.     <Button   
  18.         android:id="@+id/btn_progress"  
  19.         android:layout_width="fill_parent"  
  20.         android:layout_height="wrap_content"  
  21.         android:text="进度条Dialog"  
  22.         />  
  23.     <Button   
  24.         android:id="@+id/btn_dan"  
  25.         android:layout_width="fill_parent"  
  26.         android:layout_height="wrap_content"  
  27.         android:text="单选Dialog"  
  28.         />  
  29.     <Button   
  30.         android:id="@+id/btn_mus"  
  31.         android:layout_width="fill_parent"  
  32.         android:layout_height="wrap_content"  
  33.         android:text="多选Dialog"  
  34.         />  
  35.     <Button   
  36.         android:id="@+id/btn_custom"  
  37.         android:layout_width="fill_parent"  
  38.         android:layout_height="wrap_content"  
  39.         android:text="自定义Dialog"  
  40.         />  
  41. </LinearLayout>  


login.xml:

  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="vertical" >  
  6.       
  7.     <LinearLayout   
  8.         android:id="@+id/user_layout"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:orientation="horizontal"  
  12.         >  
  13.         <TextView   
  14.             android:id="@+id/text_user"  
  15.             android:layout_width="wrap_content"  
  16.             android:layout_height="wrap_content"  
  17.             android:text="姓名:"  
  18.             />  
  19.         <EditText   
  20.             android:id="@+id/username"  
  21.             android:layout_width="fill_parent"  
  22.             android:layout_height="wrap_content"  
  23.             android:saveEnabled="true"  
  24.             android:hint="姓名"  
  25.             />  
  26.     </LinearLayout>  
  27.       
  28.     <LinearLayout   
  29.         android:id="@+id/pwd_layout"  
  30.         android:layout_width="fill_parent"  
  31.         android:layout_height="wrap_content"  
  32.         android:orientation="horizontal"  
  33.         >  
  34.         <TextView   
  35.             android:id="@+id/text_pwd"  
  36.             android:layout_width="wrap_content"  
  37.             android:layout_height="wrap_content"  
  38.             android:text="密码:"  
  39.             />  
  40.         <EditText   
  41.             android:id="@+id/pwd"  
  42.             android:layout_width="fill_parent"  
  43.             android:layout_height="wrap_content"  
  44.             android:inputType="textPassword"  
  45.             android:saveEnabled="true"  
  46.             android:hint="密码"  
  47.             />  
  48.     </LinearLayout>  
  49.       
  50. </LinearLayout> 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值