Android 對話框中的進度條 ProgressDialog

fmms 12年前發布 | 22K 次閱讀 Android Android開發 移動開發

先看效果圖:

Android 對話框中的進度條 ProgressDialog Android 對話框中的進度條 ProgressDialog

首先需要創建ProgressDialog對象,然后使用線程控制進度條顯示,具體源代碼:

package com.yarin.android.TestOnPDialog;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class PDialog extends Activity
{
    private Button mButton01,mButton02;

    int m_count = 0;
    //聲明進度條對話框
    ProgressDialog m_pDialog;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //得到按鈕對象
        mButton01 = (Button)findViewById(R.id.Button01);
        mButton02 = (Button)findViewById(R.id.Button02);

        //設置mButton01的事件監聽
        mButton01.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub

                //創建ProgressDialog對象
                m_pDialog = new ProgressDialog(PDialog.this);

                // 設置進度條風格,風格為圓形,旋轉的
                m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

                // 設置ProgressDialog 標題
                m_pDialog.setTitle("提示");

                // 設置ProgressDialog 提示信息
                m_pDialog.setMessage("這是一個圓形進度條對話框");

                // 設置ProgressDialog 標題圖標
                m_pDialog.setIcon(R.drawable.img1);

                // 設置ProgressDialog 的進度條是否不明確
                m_pDialog.setIndeterminate(false);

                // 設置ProgressDialog 是否可以按退回按鍵取消
                m_pDialog.setCancelable(true);

                // 設置ProgressDialog 的一個Button
                m_pDialog.setButton("確定", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int i)
                    {
                        //點擊“確定按鈕”取消對話框
                        dialog.cancel();
                    }
                });

                // 讓ProgressDialog顯示
                m_pDialog.show();
            }
        });

      //設置mButton02的事件監聽
        mButton02.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                // TODO Auto-generated method stub

                m_count = 0;

                // 創建ProgressDialog對象
                m_pDialog = new ProgressDialog(PDialog.this);

                // 設置進度條風格,風格為長形
                m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

                // 設置ProgressDialog 標題
                m_pDialog.setTitle("提示");

                // 設置ProgressDialog 提示信息
                m_pDialog.setMessage("這是一個長形對話框進度條");

                // 設置ProgressDialog 標題圖標
                m_pDialog.setIcon(R.drawable.img2);

                // 設置ProgressDialog 進度條進度
                m_pDialog.setProgress(100);

                // 設置ProgressDialog 的進度條是否不明確
                m_pDialog.setIndeterminate(false);

                // 設置ProgressDialog 是否可以按退回按鍵取消
                m_pDialog.setCancelable(true);

                // 讓ProgressDialog顯示
                m_pDialog.show();

                new Thread()
                {
                    public void run()
                    {
                        try
                        {
                            while (m_count <= 100)
                            {
                                // 由線程來控制進度。
                                m_pDialog.setProgress(m_count++);
                                Thread.sleep(100);
                            }
                            m_pDialog.cancel();
                        }
                        catch (InterruptedException e)
                        {
                            m_pDialog.cancel();
                        }
                    }
                }.start();

            }
        });
    }
}

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