久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Android開發之ProgressDialog進度對話框用法示例

這篇文章主要介紹了Android開發之ProgressDialog進度對話框用法,簡單介紹了ProgressDialog進度對話框常見函數功能,并結合實例形式分析了ProgressDialog組件創建及使用進度對話框相關操作技巧,需

本文實例講述了Android開發之ProgressDialog進度對話框用法。分享給大家供大家參考,具體如下:

使用方法:

如果只是普通進度對話框 直接調用ProgressDialog靜態方法 show() 即可
創建ProgressDialog 調用方法進行具體設置
setIndeterminate(false); 設置進度條是否顯示進度
setMax(MAX_PROGRESS); 設置進度條的最大值
setMessage("..."); 設置對話框執行內容
setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) 設置對話框進度條風格
setProgress() 設置 進度條內的進度值(當前)

效果:

代碼實現:

主要是兩種類型

1.帶耗時操作  showIndeterminate

2.不帶耗時操作 showProgress

具體實現:


public class MainActivity extends Activity {
  final static int MAX_PROGRESS = 100;
  //虛擬 填充長度為100的數組
  private int[] data = new int[50];
  //記錄進度對話框完成百分比
  int progressStatus = 0;
  int hasDta = 0;
  ProgressDialog progressDialog01,progressDialog02;
  private Button buttonDate;
  private Button buttonTime;
  //創建一個負責更新進度的Handler
  Handler mHandler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
      //表明消息是本程序發送的
      if (msg.what == 0x111){
        progressDialog02.setProgress(progressStatus);
      }
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    buttonDate = (Button) findViewById(R.id.dataBn);
    buttonTime = (Button) findViewById(R.id.timeBn);
    iniClick();//Binding the listeners for you program
  }
  public void showSpinner(View source){
    //用靜態方法顯示環形進度條
    ProgressDialog.show(this,"任務執行中","熱內執行中 請等待...",false,true);
  }
  public void showIndeterminate(View source){
    progressDialog01 = new ProgressDialog(MainActivity.this);
    //設置對話框標題
    progressDialog01.setTitle("任務正在執行中");
    //設置對話框執行內容
    progressDialog01.setMessage("任務正在執行中敬請等待~~~");
    //設置對話框“取消” 按鈕關閉
    progressDialog01.setCancelable(true);
    //設置對話框進度條風格
    progressDialog01.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    //設置進度條是否顯示進度
    progressDialog01.setIndeterminate(true);
    progressDialog01.show();
  }
  public void showProgress(View source){
    //將進度條完成重設為0
    progressStatus = 0;
    //重新開始填充數組
    hasDta = 0;
    progressDialog02 = new ProgressDialog(MainActivity.this);
    progressDialog02.setMax(MAX_PROGRESS);
    //設置對話框標題
    progressDialog02.setTitle("任務正在執行中");
    //設置對話框執行內容
    progressDialog02.setMessage("任務正在執行中敬請等待~~~");
    //設置對話框“取消” 按鈕關閉
    progressDialog02.setCancelable(false);
    //設置對話框進度條風格
    progressDialog02.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    //設置進度條是否顯示進度
    progressDialog02.setIndeterminate(false);
    progressDialog02.show();
    new Thread(){//模擬耗時操作
      @Override
      public void run() {
        while (progressStatus < MAX_PROGRESS){
          //bar1獲取完成工作的百分比
          progressStatus += (int) (Math.random()*15);
          try{
            Thread.sleep(1000);
          }catch (InterruptedException e){
            e.printStackTrace();
          }
          //更新ProgressBar
          mHandler.sendEmptyMessage(0x111);
        }
        //任務完成進度條關閉
        progressDialog02.dismiss();
      }
    }.start();
  }
  public void iniClick(){
    //set listener for your Date button
    buttonDate.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        showIndeterminate(MainActivity.this.getWindow().getDecorView());
      }
    });
    //set listener for your Time button
    buttonTime.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        showProgress(MainActivity.this.getWindow().getDecorView());
      }
    });
  }
}

以下是布局文件:


<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/idtatabHost"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal"
  android:layout_weight="1">
  <Button
    android:id="@+id/dataBn"
    android:text="一般進度條"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content" />
  <Button
    android:id="@+id/timeBn"
    android:text="帶耗時進度條"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content" />
</LinearLayout>

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了Android開發之TabHost選項卡及相關疑難解決方法,結合實例形式較為詳細的分析了Android開發中TabHost選項卡的常見用法以及相關疑難問題解決方法,需要的朋友可以參考下
這篇文章主要介紹了Android TabHost選項卡標簽圖標始終不出現的解決方法,涉及Android界面布局相關屬性與狀態設置操作技巧,需要的朋友可以參考下
這篇文章主要介紹了Android開發之Notification手機狀態欄通知用法,結合實例形式分析了Android Notification手機狀態欄通知的常見函數、功能及使用技巧,需要的朋友可以參考下
這篇文章主要介紹了Android開發實現模仿微信小窗口功能,結合實例形式分析了Android實現微信風格Dialog對話框窗口相關功能與布局操作技巧,需要的朋友可以參考下
這篇文章主要介紹了Android開發之PopupWindow創建彈窗、對話框的方法,結合實例形式詳細分析了Android使用PopupWindow創建對話框相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了Android開發之DatePickerDialog、TimePickerDialog時間日期對話框用法,結合實例形式分析了Android使用DatePickerDialog、TimePickerDialog顯示日期時間相關操作技巧,需要的朋友可以參考
主站蜘蛛池模板: 免费一区二区三区 | 欧美美乳| 一本色道精品久久一区二区三区 | 成人免费三级电影 | 亚洲欧美一区在线 | 国产精品爱久久久久久久 | 99久久婷婷国产综合精品电影 | 久久久久国产精品 | 精品久久久久久久 | 日韩一区二区三区精品 | av香港经典三级级 在线 | 狠狠av | 国产精品久久久久久 | 91成人免费电影 | 在线黄色网| 日韩中文字幕视频 | 九九成人 | 日韩伦理一区二区 | www.日韩| 久久精品高清视频 | 青青草av网站 | 中文精品视频 | 91精品久久久久 | 成人免费看片网 | 欧美精品一| 99爱国产 | 激情毛片 | 亚洲福利一区二区 | 九色网址| 国产一级一级毛片 | 欧美性生活视频 | 青青草视频免费观看 | 日韩色视频 | 9久久婷婷国产综合精品性色 | 国产伦精品一区二区三区照片91 | 欧美不卡一区 | 日韩第一夜| 91成人免费 | 国产精品一区二区精品 | 91麻豆产精品久久久久久夏晴子 | 亚洲人免费视频 |