posts - 93,  comments - 2,  trackbacks - 0
          showDialog()調用createDialog()和onPrepareDialog(),其中createDialog()調用onCreateDialog()。
          例子如下所示
            1package com.zhihe.xqsh.test;
            2
            3import android.app.Activity;
            4import android.app.Dialog;
            5import android.app.ProgressDialog;
            6import android.os.Bundle;
            7import android.os.Handler;
            8import android.os.Message;
            9import android.util.Log;
           10import android.view.View;
           11import android.view.View.OnClickListener;
           12import android.widget.Button;
           13import android.widget.TextView;
           14
           15import com.zhihe.xqsh.activity.R;
           16
           17public class Sample2_19_Activity extends Activity {
           18
           19    final int PROGRESS_DIALOG = 0;
           20    final int INCREASE = 0;
           21    final int MAX_COUNTER = 100;
           22    ProgressDialog pd;
           23    Handler hd;
           24    private TextView tv_network;
           25    private Button bt_dialog;
           26   
           27    @Override
           28    public void onCreate(Bundle savedInstanceState)
           29    {
           30        super.onCreate(savedInstanceState);
           31        setContentView(R.layout.network);
           32       
           33        tv_network = (TextView) this.findViewById(R.id.tv_network);
           34        bt_dialog = (Button)this.findViewById(R.id.bt_dialog);
           35        bt_dialog.setOnClickListener(
           36            new OnClickListener(){
           37                @Override  
           38                public void onClick(View v){
           39                    showDialog(PROGRESS_DIALOG);                   
           40                }

           41            }

           42        ); 
           43        hd = new Handler(){
           44            @Override
           45            public void handleMessage(Message msg)  //必須重寫此方法,用于接收數據
           46            {
           47                super.handleMessage(msg);               
           48                switch(msg.what)
           49                {
           50                   case INCREASE:
           51                     pd.incrementProgressBy(1);//進度每次加1
           52                        if(pd.getProgress() >= MAX_COUNTER){
           53                            pd.dismiss();                                
           54                        }
                                
           55                   break;
           56                }

           57            }

           58        }
          ;
           59    }

           60   
           61    @Override
           62    public Dialog onCreateDialog(int id){
           63        switch(id){
           64              case  PROGRESS_DIALOG:
           65                  pd = new ProgressDialog(this);
           66                  pd.setMax(MAX_COUNTER);//設置最大值
           67                  pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 
           68                  pd.setTitle("hello");//設置標題
           69                  pd.setCancelable(false);//設置進度對話框不能用回退按鈕關閉    
           70                  Log.d("kkk""kkk");
           71              break;
           72        }
                 
           73        return pd;
           74    }
            
           75   
           76    //每次彈出對話框時被回調以動態更新對話框內容的方法
           77    @Override
           78    public void onPrepareDialog(int id, Dialog dialog){
           79        super.onPrepareDialog(id, dialog);
           80               switch(id){
           81               case  PROGRESS_DIALOG:
           82                   pd.incrementProgressBy(-pd.getProgress());//對話框進度清零
           83                   new Thread(){
           84                       public void run(){
           85                           while(true){
           86                               hd.sendEmptyMessage(INCREASE);
           87                               if(pd.getProgress() >= MAX_COUNTER){
           88                                   break;
           89                               }

           90                               try{
           91                                   Thread.sleep(40);
           92                               }
          catch(Exception e){
           93                                   e.printStackTrace();
           94                               }

           95                           }

           96                       }
                          
           97                   }
          .start();
           98                   break;
           99        }

          100    }

          101}

          102

          posted on 2015-02-03 08:55 Terry Zou 閱讀(304) 評論(0)  編輯  收藏 所屬分類: Android
          <2015年2月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 辰溪县| 探索| 临清市| 丰都县| 广水市| 惠州市| 新民市| 武威市| 南城县| 台北市| 津市市| 太白县| 钟祥市| 龙陵县| 宁强县| 陇南市| 建湖县| 阆中市| 白银市| 辽宁省| 海城市| 通辽市| 宜宾县| 蓬溪县| 大渡口区| 禄丰县| 宜昌市| 巴南区| 株洲市| 浮梁县| 兴安盟| 尼勒克县| 迭部县| 芦溪县| 双鸭山市| 镇江市| 土默特右旗| 读书| 武川县| 灵寿县| 寿光市|