我TimePicker
在我的应用程序中有一个可以选择播放歌曲的时间量,我在让剩余时间正确显示时遇到问题CountDownTimer
,当然一切都在几毫秒内发生在幕后,我认为我做正确的转换,但我在屏幕上看到的只是完全错误的值。
当我只是使用 3600000(1hour) 作为第一个参数进行测试 CountDownTimer 时,一切正常,但是当我将 timepicker 设置为 0 并将分钟设置为 1 时,就像我只想要 1 分钟的播放一样,它显示 12 小时,看起来像是随机的分钟和秒槽中的值。tp.getCurrentHour();
设置为零时返回零tp.getCurrentMinute();
并按预期返回一,这部分似乎发生了一些事情,但还不能弄清楚:
游戏时间 = (小时 * (60 * 60 * 1000)) + (分钟 * (60 * 1000)); starttime = SystemClock.elapsedRealtime();
为什么tv2.setText("totaltest "+startime+playtime);
显示值 6000046929803???这显然是错误的……
这是其余的代码:
TimePicker tp =(TimePicker)findViewById(R.id.timePicker1);
public void onClick(View v) {
// TODO Auto-generated method stub
long hour = tp.getCurrentHour();
long min = tp.getCurrentMinute();
playtime = (hour * (60 * 60 * 1000)) + (min * (60 * 1000));
startime = SystemClock.elapsedRealtime();
tv2.setText("totaltest "+startime+playtime);
timer = new CountDownTimer(startime+playtime,1000){
@Override
public void onFinish() {
tv.setText("finished");
}
//@SuppressLint("ParserError")
@Override
public void onTick(long millisUntilFinished) {
String display = DateUtils.formatElapsedTime(millisUntilFinished/1000);
tv.setText(display);
}
}.start();