-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);

動作しませんでした。カスタムダイアログを作成する正式な方法ですか?そうでない場合、誰かがそれを作成する正しい方法を教えてもらえますか?

4

1 に答える 1

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);

        }
    }
于 2012-07-17T05:04:05.177 に答える