在android中使用倒计时器的按钮

问题描述 投票:0回答:1

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

}
}

这就是我现在所拥有的。我将非常感谢你的帮助。

java android android-studio countdowntimer
1个回答
0
投票

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();


}
© www.soinside.com 2019 - 2024. All rights reserved.