Dialog中显示倒计时,到时自己主动关闭

这里直接用系统Dialog中加入了倒计时的显示,假设用自己定义Dialog会更美观;

 private TextView mOffTextView;

 private Handler mOffHandler;

 private Timer mOffTime;

 private Dialog mDialog;







//////创建对话框



void initDialog(){

  

   mOffTextView = new TextView(this);

  

   mDialog = new AlertDialog.Builder(this)

    .setTitle("提示")

         .setCancelable(false)

         .setView(mOffTextView) ////

         

         .setPositiveButton("确定", new DialogInterface.OnClickListener() {

          public void onClick(DialogInterface dialog, int id) {

           mOffTime.cancel();

           off();////关闭后的一些操作         

          }

         })

         .setNegativeButton("取消", new DialogInterface.OnClickListener() {

             public void onClick(DialogInterface dialog, int id) {

              dialog.cancel();

              mOffTime.cancel();

             }

         })

         .create();

   mDialog.show();

   mDialog.setCanceledOnTouchOutside(false);



    mOffHandler = new Handler() {

     public void handleMessage(Message msg) {



      if (msg.what > 0) {



        ////动态显示倒计时

       mOffTextView.setText("    即将关闭:"+msg.what);



      } else {

      ////倒计时结束自己主动关闭



       if(mDialog!=null){

        mDialog.dismiss();

       }

       off();////关闭后的操作



       mOffTime.cancel();

      }

      super.handleMessage(msg);

     }



    };



          //////倒计时



         mOffTime = new Timer(true);

      TimerTask tt = new TimerTask() {

       int countTime = 10;

       public void run() {

        if (countTime > 0) {

         countTime--;

        }

        Message msg = new Message();

        msg.what = countTime;

        mOffHandler.sendMessage(msg);

       }

      };

      mOffTime.schedule(tt, 1000, 1000);

     }




 

效果图

Dialog中显示倒计时,到时自己主动关闭

你可能感兴趣的:(dialog)