zoukankan      html  css  js  c++  java
  • Android开发手记(8) ProgressDialog的使用

      ProgressDialog,进度对话框。一般有两种,一种是圆形的进度条(ProgressDialog.STYLE_SPINNER),另一种是长条形的进度条(ProgressDialog.STYLE_HORIZONTAL)。

     

      ProgressDialog常用的方法有以下几种:

     1  progressDialog = new ProgressDialog(MainActivity.this);             // 新建一个ProgressDialog
     2  progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   // 设置ProgressDialog的样式
     3  progressDialog.setTitle("Note:");                                   // 设置标题
     4  progressDialog.setMessage("这是一个水平进度条");                       // 设置显示内容
     5  progressDialog.setIndeterminate(false);                             // 是否是不确定状态
     6  progressDialog.setCancelable(true);                                 // 是否可以取消
     7  progressDialog.setProgress(0);                                      // 设置初始进度
     8  progressDialog.setMax(200);                                         // 设置最大进度
     9  progressDialog.setSecondaryProgress(100);                           // 设置第二进度(可用于缓冲显示)
    10  progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
    11      @Override                                                       // 设置按钮
    12      public void onClick(DialogInterface dialogInterface, int i) {   // DialogInterface表示按钮位置
    13          progressDialog.cancel();                                    // BUTTON_POSITIVE 为最右边
    14      }                                                               // BUTTON_NEUTRAL  为在中间
    15  });                                                                 // BUTTON_NEGATIVE 为最左边
    16  progressDialog.show();                                              // 显示ProgressDialog

    1、圆形进度条

     1         btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);
     2 
     3         btnCricleDlg.setOnClickListener(new View.OnClickListener() {
     4             @Override
     5             public void onClick(View view) {
     6                 progressDialog = new ProgressDialog(MainActivity.this);
     7                 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
     8                 progressDialog.setTitle("Note:");
     9                 progressDialog.setMessage("这是一个圆形进度条");
    10                 progressDialog.setIndeterminate(false);
    11                 progressDialog.setCancelable(true);
    12                 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
    13                     @Override
    14                     public void onClick(DialogInterface dialog, int witch) {
    15                         progressDialog.cancel();
    16                     }
    17                 });
    18                 progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
    19                     @Override
    20                     public void onClick(DialogInterface dialog, int witch){
    21                         progressDialog.cancel();
    22                     }
    23                 });
    24                 progressDialog.show();
    25             }
    26         });

    2、长形进度条

     1       btnLongDlg = (Button) findViewById(R.id.btnLongDlg);
     2       btnLongDlg.setOnClickListener(new View.OnClickListener() {
     3             int count = 0;
     4             @Override
     5             public void onClick(View view) {
     6                 progressDialog = new ProgressDialog(MainActivity.this);             // 新建一个ProgressDialog
     7                 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   // 设置ProgressDialog的样式
     8                 progressDialog.setTitle("Note:");                                   // 设置标题
     9                 progressDialog.setMessage("这是一个水平进度条");                      // 设置显示内容
    10                 progressDialog.setIndeterminate(false);                             // 是否是不确定状态
    11                 progressDialog.setCancelable(true);                                 // 是否可以取消
    12                 progressDialog.setProgress(0);                                      // 设置初始进度
    13                 progressDialog.setMax(200);                                         // 设置最大进度
    14                 progressDialog.setSecondaryProgress(100);                           // 设置第二进度(可用于缓冲显示)
    15                 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
    16                     @Override                                                       // 设置按钮
    17                     public void onClick(DialogInterface dialogInterface, int i) {   // DialogInterface表示按钮位置
    18                         progressDialog.cancel();                                    // BUTTON_POSITIVE 为最右边
    19                     }                                                               // BUTTON_NEUTRAL  为在中间
    20                 });                                                                 // BUTTON_NEGATIVE 为最左边
    21                 progressDialog.show();                                              // 显示ProgressDialog
    22 
    23                 new Thread(){
    24                     public void run(){
    25                         while(count<=200){
    26                             try{
    27                                 Thread.sleep(100);
    28                                 progressDialog.incrementProgressBy(1);
    29                             }catch(Exception e){
    30 
    31                             }
    32 
    33                         }
    34                     }
    35 
    36                 }.start();
    37             }
    38         });

    3、完整代码

     1 import android.app.ProgressDialog;
     2 import android.content.DialogInterface;
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.widget.Button;
     7 
     8 
     9 public class MainActivity extends AppCompatActivity {
    10 
    11     private Button btnCricleDlg;
    12     private Button btnLongDlg;
    13     private ProgressDialog progressDialog;
    14 
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.activity_main);
    19 
    20         btnCricleDlg = (Button)findViewById(R.id.btnCircleDlg);
    21         btnLongDlg = (Button) findViewById(R.id.btnLongDlg);
    22 
    23         btnCricleDlg.setOnClickListener(new View.OnClickListener() {
    24             @Override
    25             public void onClick(View view) {
    26                 progressDialog = new ProgressDialog(MainActivity.this);
    27                 progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
    28                 progressDialog.setTitle("Note:");
    29                 progressDialog.setMessage("这是一个圆形进度条");
    30                 progressDialog.setIndeterminate(false);
    31                 progressDialog.setCancelable(true);
    32                 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
    33                     @Override
    34                     public void onClick(DialogInterface dialog, int witch) {
    35                         progressDialog.cancel();
    36                     }
    37                 });
    38                 progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"CANCEL",new DialogInterface.OnClickListener(){
    39                     @Override
    40                     public void onClick(DialogInterface dialog, int witch){
    41                         progressDialog.cancel();
    42                     }
    43                 });
    44                 progressDialog.show();
    45             }
    46         });
    47 
    48         btnLongDlg.setOnClickListener(new View.OnClickListener() {
    49             int count = 0;
    50             @Override
    51             public void onClick(View view) {
    52                 progressDialog = new ProgressDialog(MainActivity.this);             // 新建一个ProgressDialog
    53                 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);   // 设置ProgressDialog的样式
    54                 progressDialog.setTitle("Note:");                                   // 设置标题
    55                 progressDialog.setMessage("这是一个水平进度条");                    // 设置显示内容
    56                 progressDialog.setIndeterminate(false);                             // 是否是不确定状态
    57                 progressDialog.setCancelable(true);                                 // 是否可以取消
    58                 progressDialog.setProgress(0);                                      // 设置初始进度
    59                 progressDialog.setMax(200);                                         // 设置最大进度
    60                 progressDialog.setSecondaryProgress(100);                           // 设置第二进度(可用于缓冲显示)
    61                 progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
    62                     @Override                                                       // 设置按钮
    63                     public void onClick(DialogInterface dialogInterface, int i) {   // DialogInterface表示按钮位置
    64                         progressDialog.cancel();                                    // BUTTON_POSITIVE 为最右边
    65                     }                                                               // BUTTON_NEUTRAL  为在中间
    66                 });                                                                 // BUTTON_NEGATIVE 为最左边
    67                 progressDialog.show();                                              // 显示ProgressDialog
    68 
    69                 new Thread(){
    70                     public void run(){
    71                         while(count<=200){
    72                             try{
    73                                 Thread.sleep(100);
    74                                 progressDialog.incrementProgressBy(1);
    75                             }catch(Exception e){
    76 
    77                             }
    78 
    79                         }
    80                     }
    81 
    82                 }.start();
    83             }
    84         });
    85 
    86     }
    87 
    88 }
    MainActivity.java
  • 相关阅读:
    Java continue break 制作简单聊天室程序,屏蔽不文明语言,显示每句话聊天时间 for(;;) SimpleDateFormat("yyyy-MM-dd hh:mm:ss") equalsIgnoreCase
    Java实现随机出题,10道10以内加减法计算
    Java发出声卡蜂鸣生的方法
    Java程序调用自动关机指令 1分钟内自动关机
    Java如何将十六进制数转换为十进制数的自编程序
    告诉你今年是哪个生肖年的java程序
    更新MySQL数据库( java.sql.SQLException: No value specified for parameter 1) 异常 解决方法
    把网上图片下载到本地的java工具类
    exp ORA-01455: converting column overflows integer datatype
    shell date 格式化
  • 原文地址:https://www.cnblogs.com/doodle777/p/ProgressDialog.html
Copyright © 2011-2022 走看看