Android的版本有很多通常开发的时候对话框大多数使用自定义或是 Google提供的V4,

V7 兼容包来开发保持各个版本的对话框样式统一,所以这里使用的是V7 包里的AlertDialog。

  1 import android.app.ProgressDialog;
  2 import android.content.DialogInterface;
  3 import android.os.Bundle;
  4 import android.os.SystemClock;
  5 import android.support.v7.app.AlertDialog;
  6 import android.support.v7.app.AppCompatActivity;
  7 import android.view.View;
  8 import android.widget.Toast;
  9 
 10 public class MainActivity extends AppCompatActivity {
 11 
 12     @Override
 13     protected void onCreate(Bundle savedInstanceState) {
 14         super.onCreate(savedInstanceState);
 15         setContentView(R.layout.activity_main);
 16     }
 17 
 18     /**
 19      * 普通对话框
 20      *
 21      * @param view
 22      */
 23     public void click1(View view) {
 24         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 25         //设置标题
 26         builder.setTitle("用户安全提示:");
 27         //设置提示消息
 28         builder.setMessage("你确定接受用户隐私条款吗?");
 29         builder.setPositiveButton("确定", null);
 30         builder.setNegativeButton("取消", null);
 31         //显示dialog
 32         builder.show();
 33     }
 34 
 35     /**
 36      * 单选对话框
 37      *
 38      * @param view
 39      */
 40     public void click2(View view) {
 41         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 42         //设置标题
 43         builder.setTitle("选择一项你的专业:");
 44         //设置要显示的item条目
 45         final String items[] = {"Java", "C++", "PHP", "Android", "C#", "Python", "MySql"};
 46         //设置item点击事件
 47         builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
 48             @Override
 49             public void onClick(DialogInterface dialog, int which) {
 50                 Toast.makeText(MainActivity.this, "你选择了:" + items[which], Toast.LENGTH_SHORT).show();
 51                 dialog.dismiss();
 52             }
 53         });
 54         //显示dialog
 55         builder.show();
 56     }
 57 
 58     /**
 59      * 多选对话框
 60      *
 61      * @param view
 62      */
 63     public void click3(View view) {
 64         AlertDialog.Builder builder = new AlertDialog.Builder(this);
 65         //设置标题
 66         builder.setTitle("选择你的兴趣爱好:");
 67         //设置要显示的item条目
 68         final String items[] = {"看书", "玩游戏", "看电影", "打球", "健身", "自驾游", "去酒吧"};
 69         //设置每个条目的选择状态 false为没有选中 true为选中
 70         final boolean[] checks = {true, true, false, false, false, false, false};
 71         //设置item点击事件 条目被选中时 修改checks里的boolean值
 72         builder.setMultiChoiceItems(items, checks, new DialogInterface.OnMultiChoiceClickListener() {
 73             @Override
 74             public void onClick(DialogInterface dialog, int which, boolean isChecked) {
 75                 checks[which] = isChecked;
 76             }
 77         });
 78         //设置确定按钮点击事件
 79         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 80             @Override
 81             public void onClick(DialogInterface dialog, int which) {
 82                 StringBuffer buffer = new StringBuffer();
 83                 for (int i = 0; i < checks.length; i++) {
 84                     if (checks[i]) {
 85                         buffer.append(items[i] + ",");
 86                     }
 87                 }
 88                 Toast.makeText(MainActivity.this, buffer.toString(), Toast.LENGTH_SHORT).show();
 89             }
 90         });
 91         builder.setNegativeButton("取消", null);
 92         //显示dialog
 93         builder.show();
 94     }
 95 
 96     /**
 97      * 进度条对话框
 98      *
 99      * @param view
100      */
101     public void click4(View view) {
102         final ProgressDialog dialog = new ProgressDialog(this);
103         dialog.setTitle("请稍等:");
104         //dialog.setMessage("正在努力加载...");
105         //dialog.show();
106 
107         //以下的属性不设置 进度条样式默认为圆形
108 
109         //设置进度最大值为100
110         dialog.setMax(100);
111         //设置进度条样式为水平
112         dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
113 
114         dialog.show();
115         //模拟一个进度加载过程
116         new Thread() {
117             @Override
118             public void run() {
119                 for (int i = 0; i <= 100; i++) {
120                     dialog.setProgress(i);
121                     //休眠200毫秒
122                     SystemClock.sleep(200);
123                 }
124                 dialog.dismiss();
125             }
126         }.start();
127     }
128 }

版权声明:本文为hejiaoshou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/hejiaoshou/p/7468984.html