posts - 93,  comments - 2,  trackbacks - 0
          showDialog()調(diào)用createDialog()和onPrepareDialog(),其中createDialog()調(diào)用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)  //必須重寫此方法,用于接收數(shù)據(jù)
           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    //每次彈出對話框時被回調(diào)以動態(tài)更新對話框內(nèi)容的方法
           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 閱讀(308) 評論(0)  編輯  收藏 所屬分類: Android
          <2015年2月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 崇左市| 余姚市| 法库县| 沂源县| 凤台县| 南郑县| 郴州市| 东乡族自治县| 古浪县| 泸州市| 广州市| 文昌市| 北宁市| 英德市| 宣恩县| 怀集县| 临朐县| 桐乡市| 舞阳县| 景德镇市| 武陟县| 汪清县| 潞西市| 嘉禾县| 聊城市| 馆陶县| 曲水县| 垦利县| 游戏| 屏山县| 桓台县| 会理县| 平度市| 昌都县| 五大连池市| 锡林浩特市| 云浮市| 桐梓县| 合作市| 井陉县| 宁武县|