Android 高級控件學習--ProgressDialog

Android 高級控件學習--ProgressDialog

main.xml

<?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

package com.lxt008;

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 Activity01 extends Activity
{
	private Button mButton01,mButton02;
	
	int m_count = 0;
	//聲明進度條對話框
	ProgressDialog m_pDialog;
	/** Called when the activity is first created. */
	@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(Activity01.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(Activity01.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();
				
			}
		});
	}
}

一、源文件中,圓形進度條帶按鈕的ProgressBar

                //創建ProgressDialog對象
                m_pDialog = new ProgressDialog(Activity01.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();

二、源文件中,長條形ProgressBar

                m_count = 0;
                // 創建ProgressDialog對象
                m_pDialog = new ProgressDialog(Activity01.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();
               

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章