2017-02-04 45 views
0

我怎样才能使我的对话框动态随着时间的推移计时器也倒计时。它的唯一显示时间保持不变。不倒数。这里是我的代码我如何得到我的对话框..我怎样才能使对话框动态定时器在android

 btnTimeLeft.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(downPaymentActivity.this); 
      builder.setTitle("Time left"); 
      try { 
       SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
       TimeZone tz = TimeZone.getTimeZone("Asia/Manila"); 
       sdf1.setTimeZone(tz); 
       String currentDateandTime = sdf1.format(new Date()); 

       String givenDateString = tvDueDate.getText().toString(); 

       Date date1 = sdf1.parse(currentDateandTime); 
       Date date2 = sdf1.parse(givenDateString); 

       long restDatesinMillis = date2.getTime() - date1.getTime(); 
       String hms = String.format("%02d:%02d:%02d", 
         TimeUnit.MILLISECONDS.toHours(restDatesinMillis), 
         TimeUnit.MILLISECONDS.toMinutes(restDatesinMillis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(restDatesinMillis)), 
         TimeUnit.MILLISECONDS.toSeconds(restDatesinMillis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(restDatesinMillis))); 

       builder.setMessage(hms); 
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
         dialogInterface.cancel(); 
        } 
       }); 

       builder.show(); 
      } catch (ParseException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 

回答

0

你为什么不使用CountDownTimer这样设置的剩余时间。

new CountDownTimer(30000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
    } 

    public void onFinish() { 
     mTextField.setText("done!"); 
    } 
    }.start(); 
+0

我可以把它放在对话框内吗? –

+0

对话框里面放TextView tv = new TextView(this); tv.settext(millisUntilFinished); – Simo

+0

不工作,先生。 –

相关问题