Countdowntimer以分和秒 [英] Countdowntimer in minutes and seconds

查看:322
本文介绍了Countdowntimer以分和秒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个倒计时器,我想以分和秒来打印。前(300000mili)5分钟后,计数4:60,4点59 ... 这里是我的code部分

It's a countdown timer and i want to print in minutes and seconds. ex(300000mili)5 minutes, and count 4:60, 4:59... here is part of my code

     final MyCounter timer = new MyCounter(300000,1000);
    blue.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            timer.start();
        }
    });
}
public class MyCounter extends CountDownTimer{

    public MyCounter(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onFinish() {
        blue.setText("Live");
    }

    @Override
    public void onTick(long millisUntilFinished) {
        blue.setText((millisUntilFinished/60000)+":"+(millisUntilFinished/5000));
        // i tried this
    }
}

和我怎样才能把振动失踪20秒什么时候?当它完成了吗? 感谢和抱歉,我的英语不好

And how can i put to vibrate when missing 20 seconds? and when it finished? thanks and sorry for my bad english

推荐答案

<一个href="http://developer.android.com/reference/android/os/CountDownTimer.html">http://developer.android.com/reference/android/os/CountDownTimer.html

TextView _tv = (TextView) findViewById( R.id.textView1 );
new CountDownTimer(30000, 1000) { // adjust the milli seconds here

    public void onTick(long millisUntilFinished) {
    _tv.setText(""+String.format("%d min, %d sec", 
                    TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
    }

    public void onFinish() {
       _tv.setText("done!");
    }
 }.start();

由于Java 1.5还有就是java.util.concurrent.TimeUnit中的类

Since java 1.5 there is the java.util.concurrent.TimeUnit class

 _tv.setText(""+String.format("%d min, %d sec", 
                    TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));

<一个href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html">http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html

一个的TimeUnit重新$ P粒度的指定单位$ psents时间段,它提供了实用的方法进行跨单元转换,并在这些单位执行计时及延迟操作。

A TimeUnit represents time durations at a given unit of granularity and provides utility methods to convert across units, and to perform timing and delay operations in these units.

有关低于1​​.5的Java版本或用于不完全支持的TimeUnit类下列等式可用于系统:

For Java versions below 1.5 or for systems that do not fully support the TimeUnit class the following equations can be used:

int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours   = (int) ((milliseconds / (1000*60*60)) % 24);

振动

 Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            // Vibrate for 500 milliseconds
            v.vibrate(500);
  <uses-permission android:name="android.permission.VIBRATE"/> // permission in manifest

编辑:

在时震动4分钟55秒为500毫秒

Vibrate at 4 min 55 seconds for 500 milli seconds

 if((TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished)==4) &&
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))==55)
            {

            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            // Vibrate for 500 milliseconds
            v.vibrate(500);
            }

这篇关于Countdowntimer以分和秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆