android 對話方塊中的進度條 (ProgressDialog)

來源:互聯網
上載者:User

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. }  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.