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

 

posted @ 2015-10-15 19:15  doodle777  阅读(727)  评论(0编辑  收藏  举报