android 对话框中的进度条 (ProgressDialog)

南笙酒味 提交于 2020-02-17 08:05:20

from:http://byandby.iteye.com/blog/817214  

显然要定义对话框进度条就要用ProgressDialog,首先我们需要创建ProgressDialog对象,当然这里同样使用了线程来控制进度条显示,另外可以使用以下方法来设置ProgressDialog。 
  setProgressStyle:设置进度条风格,风格为圆形,旋转的。 
  setTitlt:设置ProgressDialog 标题 
  setMessage:设置ProgressDialog提示信息; 
  setIcon:设置ProgressDialog标题图标; 
  setIndeterminate:设置ProgressDialog 的进度条是否不明确; 
  setCancelable:设置ProgressDialog 是否可以按返回键取消; 
  setButton:设置ProgressDialog 的一个Button(需要监听Button事件); 
  show:显示ProgressDialog。 

  首先还是让我们看看运行效果吧 

 

 

 

   下面先来看看布局文件 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
<Button 
android:id="@+id/Button01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="圆形进度条"/> 

<Button 
android:id="@+id/Button02" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="长形进度条"/> 
</LinearLayout> 

Activity01 
Java代码  

    1. package xiaohang.zhimeng;  
    2.   
    3. import android.app.Activity;  
    4. import android.app.ProgressDialog;  
    5. import android.content.DialogInterface;  
    6. import android.os.Bundle;  
    7. import android.view.View;  
    8. import android.view.View.OnClickListener;  
    9. import android.widget.Button;  
    10.   
    11. public class Activity01 extends Activity {  
    12.   
    13.     private Button xhButton01, xhButton02;  
    14.   
    15.     int xh_count = 0;  
    16.     // 声明进度条对话框  
    17.     ProgressDialog xh_pDialog;  
    18.   
    19.     @Override  
    20.     public void onCreate(Bundle savedInstanceState) {  
    21.         super.onCreate(savedInstanceState);  
    22.         setContentView(R.layout.main);  
    23.   
    24.         // 得到按钮对象  
    25.         xhButton01 = (Button) findViewById(R.id.Button01);  
    26.         xhButton02 = (Button) findViewById(R.id.Button02);  
    27.   
    28.         // 设置xhButton01的事件监听  
    29.         xhButton01.setOnClickListener(new OnClickListener() {  
    30.             @Override  
    31.             public void onClick(View v) {  
    32.                 // 创建ProgressDialog对象  
    33.                 xh_pDialog = new ProgressDialog(Activity01.this);  
    34.   
    35.                 // 设置进度条风格,风格为圆形,旋转的  
    36.                 xh_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);  
    37.   
    38.                 // 设置ProgressDialog 标题  
    39.                 xh_pDialog.setTitle("提示");  
    40.   
    41.                 // 设置ProgressDialog提示信息  
    42.                 xh_pDialog.setMessage("这是一个圆形进度条对话框");  
    43.   
    44.                 // 设置ProgressDialog标题图标  
    45.                 xh_pDialog.setIcon(R.drawable.img1);  
    46.   
    47.                 // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确  
    48.                 xh_pDialog.setIndeterminate(false);  
    49.   
    50.                 // 设置ProgressDialog 是否可以按退回键取消  
    51.                 xh_pDialog.setCancelable(true);  
    52.   
    53.                 // 设置ProgressDialog 的一个Button  
    54.                 xh_pDialog.setButton("确定"new Bt1DialogListener());  
    55.   
    56.                 // 让ProgressDialog显示  
    57.                 xh_pDialog.show();  
    58.             }  
    59.   
    60.         });  
    61.   
    62.         // 设置xhButton02的事件监听  
    63.         xhButton02.setOnClickListener(new Button.OnClickListener() {  
    64.   
    65.             @Override  
    66.             public void onClick(View v) {  
    67.   
    68.                 xh_count = 0;  
    69.   
    70.                 // 创建ProgressDialog对象  
    71.                 xh_pDialog = new ProgressDialog(Activity01.this);  
    72.   
    73.                 // 设置进度条风格,风格为圆形,旋转的  
    74.                 xh_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
    75.   
    76.                 // 设置ProgressDialog 标题  
    77.                 xh_pDialog.setTitle("提示");  
    78.   
    79.                 // 设置ProgressDialog提示信息  
    80.                 xh_pDialog.setMessage("这是一个长形进度条对话框");  
    81.   
    82.                 // 设置ProgressDialog标题图标  
    83.                 xh_pDialog.setIcon(R.drawable.img2);  
    84.   
    85.                 // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确  
    86.                 xh_pDialog.setIndeterminate(false);  
    87.   
    88.                 // 设置ProgressDialog 进度条进度  
    89.                 xh_pDialog.setProgress(100);  
    90.   
    91.                 // 设置ProgressDialog 是否可以按退回键取消  
    92.                 xh_pDialog.setCancelable(true);  
    93.   
    94.                 // 让ProgressDialog显示  
    95.                 xh_pDialog.show();  
    96.   
    97.                 new Thread() {  
    98.                     @Override  
    99.                     public void run() {  
    100.                         try {  
    101.                             while (xh_count <= 100) {  
    102.                                 // 由线程来控制进度  
    103.                                 xh_pDialog.setProgress(xh_count++);  
    104.                                 Thread.sleep(100);  
    105.                             }  
    106.                             xh_pDialog.cancel();  
    107.                         } catch (Exception e) {  
    108.                             xh_pDialog.cancel();  
    109.                         }  
    110.                     }  
    111.                 }.start();  
    112.   
    113.             }  
    114.   
    115.         });  
    116.     }  
    117.   
    118.     // xhButton01的监听器类  
    119.     class Bt1DialogListener implements DialogInterface.OnClickListener {  
    120.         @Override  
    121.         public void onClick(DialogInterface dialog, int which) {  
    122.             // 点击“确定”按钮取消对话框  
    123.             dialog.cancel();  
    124.         }  
    125.     }  
    126. }  
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!