2012-07-17 98 views
-1

我定義了一個CustomDialog類如下:爲什麼我的自定義對話框無法自動關閉?

public class CustomDialog { 
    Dialog dialog; 
    public void show(Contex contex, int duration){ 
     Handler timeHandler = new Handler(){ 
    @Override 
    public void handleMessage(Message msg) { 
    switch (msg.what) { 
    case 1: 
    dialog.dismiss(); 
    break; 
    default: 
    break; 
    }    
    }; 
     dialog = new dialog(contex); 
     dialog.show(); 
     Message message = new Message(); 
    message.what = 1 ; 
    timeHandler.sendMessageDelayed(message, duration); 
    } 
} 

活動中,我的新目標CustomDialog,並調用show()方法,但該對話框不能自動關閉,可能有人告訴我爲什麼? 活動中的代碼:

CustomDialog myDialog = new CustomDialog(); 
myDialog.show(this,2000); 

它沒有work.Is它正式的方式來創建自定義對話框?如果不是,誰能告訴我什麼是創建一個正確的方法?

回答

0
Try this: 

    public class CustomDialog { 
     Dialog dialog; 
     public void show(Contex contex, int duration){ 
      Handler timeHandler = new Handler(){ 
     @Override 
     public void handleMessage(Message msg) { 
     switch (msg.what) { 
     case 1: 
     dismiss(); 
     break; 
     default: 
     break; 
     }    
     }; 
      dialog = new dialog(contex); 
      dialog.show();Timer timer = new Timer(); 
Timer timer=new Timer(); 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
     //dismiss the dialog here 
     dialog.dismiss(); 
     } 
    }, duration); 

     } 
    }