TShopping

 找回密碼
 註冊
搜索
查看: 231|回復: 0

[教學] Android如何使用ProgressDialog

[複製鏈接]
發表於 2016-1-12 00:41:38 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 

<1>簡介

ProgressDialog 是AlertDialog 類的一個擴展,可以為一個未定義進度的任務顯示一個旋轉輪形狀的進度動畫,或者為一個指定進度的任務顯示一個進度條。

一個對話框中顯示一個進步指標和一個可選的文本信息或一個視圖。只有文本信息或一個視圖,可以同時使用。

對話框可以按back鍵取消。

<2>方法


setProgressStyle() 設置進度條風格


setTitle()設置ProgressDialog標題 setMessage()設置ProgressDialog提示信息

   

setIcon() 設置ProgressDialog 標題圖標


setIndeterminate()設置ProgressDialog的進度條是否不明確 setCancelable()設置ProgressDialog是否可以按退回按鍵取消

   

setButton() 設置ProgressDialog 的一個Button


setProgress() 設置ProgressDialog 進度條進度


show() 顯示ProgressDialog


<3>範例

2.gif 1.gif

  1. package com.yarin.android.Examples_04_24;
  2. import android.app.Activity;
  3. import android.app.ProgressDialog;
  4. import android.content.DialogInterface;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;

  9. public class Activity01 extends Activity
  10. {
  11.         private Button Button1 = null;
  12.         private Button Button2 = null;
  13.         
  14.         int count = 0;
  15.         //聲明進度對話框
  16.         ProgressDialog progressDialog = null;
  17.         /** Called when the activity is first created. */
  18.         @Override
  19.         public void onCreate(Bundle savedInstanceState)
  20.         {
  21.                 super.onCreate(savedInstanceState);
  22.                 setContentView(R.layout.main);
  23.                
  24.                 //得到按鈕對象
  25.                 Button1 = (Button)findViewById(R.id.Button01);
  26.                 Button2 = (Button)findViewById(R.id.Button02);
  27.                
  28.                 //設置mButton01的事件監聽
  29.                 Button1.setOnClickListener(new Button1Listener());
  30.             
  31.           //設置mButton02的事件監聽
  32.             Button2.setOnClickListener(new Button2Listener());
  33.         }
  34.         private class Button1Listener implements OnClickListener{

  35.                 public void onClick(View v) {
  36.                         //創建ProgressDialog對象
  37.                         progressDialog = new ProgressDialog(Activity01.this);
  38.                         // 設置進度條風格,風格為圆形,旋轉的
  39.                         progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
  40.                         // 設置ProgressDialog 標題
  41.                         progressDialog.setTitle("提示");
  42.                         // 設置ProgressDialog 提示訊息
  43.                         progressDialog.setMessage("這是一個圓形進度條對話框");
  44.                         // 設置ProgressDialog 標題圖標
  45.                         progressDialog.setIcon(R.drawable.a);
  46.                         // 設置ProgressDialog 的進度條是否不明確
  47.                         progressDialog.setIndeterminate(false);                        
  48.                         // 設置ProgressDialog 是否可以按退回按鍵取消
  49.                         progressDialog.setCancelable(true);                        
  50.                         //設置ProgressDialog 的一個Button
  51.                         progressDialog.setButton("確定", new SureButtonListener());
  52.                         // 讓ProgressDialog顯示
  53.                         progressDialog.show();
  54.                 }
  55.         }
  56.         //Dialog中確定按鈕的監聽器
  57.         private class SureButtonListener implements android.content.DialogInterface.OnClickListener{

  58.                 public void onClick(DialogInterface dialog, int which) {
  59.                         //點擊“確定按鈕”取消對話框
  60.                         dialog.cancel();
  61.                 }
  62.                
  63.         }
  64.         private class Button2Listener implements OnClickListener{

  65.                         public void onClick(View v) {
  66.                                 count = 0;                        
  67.                                 <span class="comment" style="border: none;">// 創建ProgressDialog對象</span><span style="border: none;">  </span>
  68.                                 progressDialog = new ProgressDialog(Activity01.this);                                
  69.                                 <span class="comment" style="border: none;">// 設置進度條風格,風格為長形</span><span style="border: none;"> </span>
  70.                                 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);                                
  71.                                 <span class="comment" style="border: none;">// 設置ProgressDialog 標題</span><span style="border: none;">  </span>
  72.                                 progressDialog.setTitle("提示");                                
  73.                                 <span class="comment" style="border: none;">// 設置ProgressDialog 提示信息</span><span style="border: none;">  </span>
  74.                                 progressDialog.setMessage("這是一個長形對話框進度條");                                
  75.                                 <span class="comment" style="border: none;"><span style="box-shadow: rgb(153, 153, 170) 2px 2px 4px; box-sizing: border-box; position: relative; background-color: rgb(201, 215, 241);">// 設置ProgressDialog 標題圖標</span></span><span style="border: none;"> </span>
  76.                                 progressDialog.setIcon(R.drawable.a);
  77.                                 <span class="comment" style="border: none;">// 設置ProgressDialog 進度條進度</span>
  78.                                 progressDialog.setProgress(100);                        
  79.                                 <span class="comment" style="border: none;">// 設置ProgressDialog 的進度條是否不明確</span><span style="border: none;">  </span>
  80.                                 progressDialog.setIndeterminate(false);                                
  81.                                 <span class="comment" style="border: none;">// 設置ProgressDialog 是否可以按退回按鍵取消</span><span style="border: none;">  </span>
  82.                                 progressDialog.setCancelable(true);                                
  83.                                 // 讓ProgressDialog顯示
  84.                                 progressDialog.show();                                
  85.                                 new Thread()
  86.                                 {
  87.                                         public void run()
  88.                                         {
  89.                                                 try
  90.                                                 {
  91.                                                         while (count <= 100)
  92.                                                         {
  93.                                                                 // 由線程來控制進度。。
  94.                                                                 progressDialog.setProgress(count++);
  95.                                                                 Thread.sleep(100);
  96.                                                         }
  97.                                                         progressDialog.cancel();
  98.                                                 }
  99.                                                 catch (InterruptedException e)
  100.                                                 {
  101.                                                         progressDialog.cancel();
  102.                                                 }
  103.                                         }
  104.                         }.start();        
  105.                 }
  106.         }
  107. }
複製代碼

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7.   <Button
  8.     android:id="@+id/Button01"
  9.     android:layout_width="wrap_content"
  10.     android:layout_height="wrap_content"
  11.     android:text="圓形進度條" />
  12.   <Button
  13.     android:id="@+id/Button02"
  14.     android:layout_width="wrap_content"
  15.     android:layout_height="wrap_content"
  16.     android:text="長形進度條" />
  17. </LinearLayout>
複製代碼

 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-11 14:27 , Processed in 0.061059 second(s), 26 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表