繁体   English   中英

在Android中使用按钮进行倒数计时器

[英]using buttons for countdown timer in android

我正在尝试制作一个倒数计时器,但是我无法实现如何放置一个按钮来开始/停止倒数。 我试图在onCreate方法中创建该方法,但它返回一个错误,所以我的脚本是这样的(其中goButton是我的onClick函数):

package com.example.ricardofonzo.eggtimer;
import android.media.MediaPlayer;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;


public class MainActivity extends AppCompatActivity {

MediaPlayer mplayer;

int estadoContador =0;

public void goButton(View view){
    estadoContador = 1;

}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mplayer = MediaPlayer.create(this,R.raw.bell);

    final TextView timeView = (TextView) findViewById(R.id.timeView);

    CountDownTimer cuentaRegresiva = new CountDownTimer(100000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            long segundos = millisUntilFinished/1000;
            long minutos;
            if (segundos>= 60) {
                minutos = segundos / 60;
                segundos = segundos - minutos * 60;
                if (minutos > 9) {
                    if (segundos > 9) {
                        timeView.setText(String.valueOf(minutos) + ":" + String.valueOf(segundos));
                    } else {
                        timeView.setText(String.valueOf(minutos) + ":0" + String.valueOf(segundos));
                    }
                } else {
                    if (segundos > 9) {
                        timeView.setText("0" + String.valueOf(minutos) + ":" + String.valueOf(segundos));
                    } else {
                        timeView.setText("0" + String.valueOf(minutos) + ":0" + String.valueOf(segundos));
                    }
                }
            } else {
                if (segundos>9){
                    timeView.setText("00:" + String.valueOf(segundos));
                } else {
                    timeView.setText("00:0" + String.valueOf(segundos));
                }

            }
        }

        @Override
        public void onFinish() {
            timeView.setText("Time out!");
            mplayer.start();

        }
    }.start();

}
}

这就是我目前所拥有的。 非常感谢您的帮助。

XML文件中将此行添加到您的按钮

android:onClick="startCounterDown"

并将此方法添加到您的活动中

public void startCounterDown(View view){

    CountDownTimer cuentaRegresiva = new CountDownTimer(100000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            long segundos = millisUntilFinished/1000;
            long minutos;
            if (segundos>= 60) {
                minutos = segundos / 60;
                segundos = segundos - minutos * 60;
                if (minutos > 9) {
                    if (segundos > 9) {
                        timeView.setText(String.valueOf(minutos) + ":" + String.valueOf(segundos));
                    } else {
                        timeView.setText(String.valueOf(minutos) + ":0" + String.valueOf(segundos));
                    }
                } else {
                    if (segundos > 9) {
                        timeView.setText("0" + String.valueOf(minutos) + ":" + String.valueOf(segundos));
                    } else {
                        timeView.setText("0" + String.valueOf(minutos) + ":0" + String.valueOf(segundos));
                    }
                }
            } else {
                if (segundos>9){
                    timeView.setText("00:" + String.valueOf(segundos));
                } else {
                    timeView.setText("00:0" + String.valueOf(segundos));
                }

            }
        }

        @Override
        public void onFinish() {
            timeView.setText("Time out!");
            mplayer.start();

        }
    }.start();


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM