Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何设置倒计时时间格式_Java_Android_Handler_Runnable_Countdowntimer - Fatal编程技术网

Java 如何设置倒计时时间格式

Java 如何设置倒计时时间格式,java,android,handler,runnable,countdowntimer,Java,Android,Handler,Runnable,Countdowntimer,我使用runnable()在游戏中设置倒计时 设置iint cd=30 这就是运行它的方法 final Handler mHandler = new Handler(); final Runnable mUpdateTimeTasks = new Runnable() { public void run() { countdowntext.setText(String.valueOf(cd)); cd -=1; if(cd < 1

我使用
runnable()
在游戏中设置倒计时

设置i
int cd=30

这就是运行它的方法

final Handler mHandler = new Handler();

final Runnable mUpdateTimeTasks = new Runnable() {

    public void run() {
        countdowntext.setText(String.valueOf(cd));
        cd -=1;
        if(cd < 10) {
            countdowntext.setTextColor(Color.RED);
        }
        if(cd == 0) {
           focus.stop();                                      
        }
    };
    // run this in a method.
    mHandler.postDelayed(mUpdateTimeTasks, cd);
}
final Handler mHandler=new Handler();
最终可运行mUpdateTimeTasks=new Runnable(){
公开募捐{
countdowntext.setText(String.valueOf(cd));
cd-=1;
如果(cd<10){
countdowntext.setTextColor(Color.RED);
}
如果(cd==0){
聚焦。停止();
}
};
//在一个方法中运行这个。
mHandler.postDelayed(mUpdateTimeTasks,cd);
}
代码运行得很好,但问题在于Condown计时器运行得太快,我只是想知道如何使int cd=1=1秒,所以cd=30=30秒

有人能帮我吗

我只是想知道如何使int cd=1=1秒,所以cd=30=30 第二

然后您应该使用
mHandler.postDelayed(mUpdateTimeTasks,1000)

final Runnable mUpdateTimeTasks=new Runnable(){
公开募捐{
countdowntext.setText(String.valueOf(cd));
cd-=1;
如果(cd<10){
countdowntext.setTextColor(Color.RED);
}
如果(cd==0){
聚焦。停止();
mHandler.removaCallbacks(空);
返回;
}
mHandler.postDelayed(本,1000)
};
这不会给出精确的30秒,但是非常接近它

mHandler.postDelayed(mUpdateTimeTasks,cd);cd为毫秒

您应该从以下位置更改代码:

final Handler mHandler = new Handler();
最终可运行mUpdateTimeTasks=new Runnable(){

public void run(){
countdowntext.setText(String.valueOf(cd));
cd-=1;
如果(cd<10){
countdowntext.setTextColor(Color.RED);
}
如果(cd==0){
聚焦。停止();
}
};
//在一个方法中运行这个。
mHandler.postDelayed(mUpdateTimeTasks,cd);
}
为此:

    final Handler mHandler = new Handler();

final Runnable mUpdateTimeTasks = new Runnable() {

    public void run() {
        countdowntext.setText(String.valueOf(cd));
        cd -=1;
        if(cd < 10) {
            countdowntext.setTextColor(Color.RED);
        }
        if(cd == 0) {
           focus.stop();    
           mHandler.removaCallbacks(null);  
           return();                                
        }
    };
    // run this in a method.
    mHandler.postDelayed(mUpdateTimeTasks, 1000);
    }
final Handler mHandler=new Handler();
最终可运行mUpdateTimeTasks=new Runnable(){
公开募捐{
countdowntext.setText(String.valueOf(cd));
cd-=1;
如果(cd<10){
countdowntext.setTextColor(Color.RED);
}
如果(cd==0){
聚焦。停止();
mHandler.removaCallbacks(空);
return();
}
};
//在一个方法中运行这个。
mHandler.postDelayed(mUpdateTimeTasks,1000);
}
1000表示在1秒(1000/1000秒)后检查Runnable mUpdateTimeTasks方法

public void run() {
    countdowntext.setText(String.valueOf(cd));
    cd -=1;
    if(cd < 10) {
        countdowntext.setTextColor(Color.RED);
    }
    if(cd == 0) {
       focus.stop();                                      
    }
};
// run this in a method.
mHandler.postDelayed(mUpdateTimeTasks, cd);
 }
    final Handler mHandler = new Handler();

final Runnable mUpdateTimeTasks = new Runnable() {

    public void run() {
        countdowntext.setText(String.valueOf(cd));
        cd -=1;
        if(cd < 10) {
            countdowntext.setTextColor(Color.RED);
        }
        if(cd == 0) {
           focus.stop();    
           mHandler.removaCallbacks(null);  
           return();                                
        }
    };
    // run this in a method.
    mHandler.postDelayed(mUpdateTimeTasks, 1000);
    }