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 閱讀(309) 評論(0)  編輯  收藏 所屬分類: Android
          <2015年2月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 松江区| 余庆县| 开原市| 大洼县| 临海市| 文安县| 娄烦县| 资阳市| 定远县| 武宣县| 黄大仙区| 安庆市| 米林县| 任丘市| 临沭县| 小金县| 伊通| 观塘区| 太仆寺旗| 白水县| 庆阳市| 盐津县| 顺义区| 朝阳市| 工布江达县| 巴林右旗| 牡丹江市| 南皮县| 甘孜县| 将乐县| 清苑县| 南木林县| 福建省| 南溪县| 胶州市| 鄂托克旗| 庆安县| 昌乐县| 无棣县| 称多县| 绥滨县|