ProgressDialog的使用:請稍等提示

jopen 10年前發布 | 9K 次閱讀 Android開發 移動開發 ProgressDialog

 

我們經常看到有些應用中會出現 “ 請稍等 ”  對話框,Android中ProgressDialog類可以實現該效果

O(∩_∩)O~

layout/activity_main.xml代碼如下:

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="20dp"
  >
    <Button
      android:id="@+id/circleButt"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dp"
      android:text="圓形進度條"
      />
  <Button
    android:id="@+id/longButt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="60dp"
    android:text="長形進度條"
    />
  </LinearLayout>

創建一個ProgressDialogExample類繼承Activity
package com.example.lenovo.a1101;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.DialogPreference;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

/**
 * Created by Lenovo on 2015/11/1.
 */
public class ProgressDialogExample extends Activity {
    Button circleBut;
    Button longBut;
    ProgressDialog myDialog;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        circleBut = (Button) findViewById(R.id.circleButt);
        longBut = (Button) findViewById(R.id.longButt);
        circleBut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                myDialog = new ProgressDialog(ProgressDialogExample.this); 
                                     //創建progressDialog對象
                myDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);  
                                      //設置進度條為圓形樣式
                myDialog.setTitle("提示"); 
                                      //設置進度條的標題信息
                myDialog.setMessage("主人,小白正在努力加載中……"); 
                                      //設置進度條的提示信息
                myDialog.setIcon(R.drawable.ic_launch);
                                       //是指進度條的圖標
                myDialog.setIndeterminate(false);
                                    //設置進度條是否為不明確
                myDialog.setCancelable(true);
                //為進度條添加"確定"按鈕,并添加點擊事件
                myDialog.setButton("確定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        myDialog.cancel();
                    }
                });
                myDialog.show();
            }
        });
        longBut.setOnClickListener(new View.OnClickListener() {
            int count = 0;//存儲進度條當前的進度值,初始值為0

            @Override
            public void onClick(View v) {

                myDialog = new ProgressDialog(ProgressDialogExample.this);
                myDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                myDialog.setTitle("提示");
                myDialog.setMessage("快馬加鞭加載中……");
                myDialog.setIcon(R.drawable.ic_launch);
                myDialog.setIndeterminate(false);
                myDialog.setCancelable(true);
                myDialog.setMax(100);
                                 //設置進度條的最大值
                myDialog.setProgress(0);
                                    //默認值為0
                myDialog.setSecondaryProgress(50);
                                       //設置第二進度條的長度
                myDialog.setButton("取消", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        myDialog.cancel();
                    }

                });
                myDialog.show();//顯示進度條 
                new Thread() {             //定義線程,動態改變當前進度條的值
                    public void run() {
                        while (count <= 100) {
                            myDialog.setProgress(count++);
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }

                    }

                }.start();

            }
        });
    }
}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!