我正在尝试制作一个倒数计时器,但我无法实现如何按下按钮来开始/停止倒计时。我试图在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();
}