java - 倒数计时器,完成,在 Android Studio 中暂停
问题描述
我的项目上有倒数计时器,edittext。倒数计时器与 edittext 变量一起使用。它可以工作。我为完成倒计时添加了一个新按钮。我想在我单击按钮时完成倒数计时器。我想在点击时在 bitir 中完成倒数计时器。
活动.java
public class pomodoro extends AppCompatActivity {
Button baslat,backhome,restore,bitir;
EditText edittextcalisma,edittextmola;
CountDownTimer calisma,mola;
CircularView circularViewWithTimercalisma,circularViewWithTimermola;
private Notification notification;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pomodoro);
bitir=findViewById(R.id.bitirbutton);
circularViewWithTimercalisma = findViewById(R.id.circular_viewcalisma);
circularViewWithTimermola = findViewById(R.id.circular_viewmola);
baslat = findViewById(R.id.baslatbutton);
edittextcalisma = findViewById(R.id.edittextcalisma);
edittextmola = findViewById(R.id.edittextmola);
textcalisma = findViewById(R.id.textcalisma);
textmola = findViewById(R.id.textmola);
tur = findViewById(R.id.tur);
pomodoro = findViewById(R.id.pomodoro);
backhome = findViewById(R.id.backhome);
baslat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
closeKeyboard();
final int molapo = Integer.valueOf(edittextmola.getText().toString());
final int calismapo = Integer.valueOf(edittextcalisma.getText().toString());
if (calismapo <= 600 && molapo <= 600 && calismapo > 0 && molapo>0){
bitir.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
**//I want finish countdown timer in there**
}
});
restore.setVisibility(View.INVISIBLE);
final CountDownTimer calisma = new CountDownTimer(calismapo * 60000, 1000) {
@Override
public void onTick(long millis) {
circularViewWithTimercalisma.setVisibility(View.VISIBLE);
circularViewWithTimercalisma.startTimer();
CircularView.OptionsBuilder builderWithTimer =
new CircularView.OptionsBuilder()
.shouldDisplayText(false)
.setCounterInSeconds(calismapo*60)
.setCircularViewCallback(new CircularViewCallback() {
@Override
public void onTimerFinish() {
}
@Override
public void onTimerCancelled() {
}
});
circularViewWithTimercalisma.setOptions(builderWithTimer);
tur.setText("Çalışma");
if (calismapo > 60){
circularViewWithTimercalisma.setOptions(builderWithTimer);
tur.setText("Çalışma");
int hours = (int) (millis /1000) /3600;
int minuted1 = (int) ((millis / 1000)% 3600) / 60;
int secondd1 = (int) (millis / 1000) % 60;
pomodoro.setText(hours + ":" + minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(hours + ":" + minuted1 + ":0" + secondd1);
}
if (minuted1 < 10){
pomodoro.setText(hours + ":0" + minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(hours + ":" + minuted1 + ":0" + secondd1);
}
}
}else{
int minuted1 = (int) (millis / 1000) / 60;
int secondd1 = (int) (millis / 1000) % 60;
pomodoro.setText(minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(minuted1 + ":0" + secondd1);
}
}
}
@Override
public void onFinish() {
circularViewWithTimercalisma.stopTimer();
final int molapo = Integer.valueOf(edittextmola.getText().toString());
circularViewWithTimermola.setVisibility(View.VISIBLE);
circularViewWithTimercalisma.setVisibility(View.INVISIBLE);
CountDownTimer mola = new CountDownTimer(molapo * 60000, 1000) {
@Override
public void onTick(long millis) {
circularViewWithTimermola.startTimer();
CircularView.OptionsBuilder builderWithTimer =
new CircularView.OptionsBuilder()
.shouldDisplayText(false)
.setCounterInSeconds(molapo*60)
.setCircularViewCallback(new CircularViewCallback() {
@Override
public void onTimerFinish() {
}
@Override
public void onTimerCancelled() {
}
});
circularViewWithTimermola.setOptions(builderWithTimer);
tur.setText("Mola");
if (molapo > 60){
circularViewWithTimercalisma.setOptions(builderWithTimer);
tur.setText("Mola");
int hours = (int) (millis /1000) /3600;
int minuted1 = (int) ((millis / 1000)% 3600) / 60;
int secondd1 = (int) (millis / 1000) % 60;
pomodoro.setText(hours + ":" + minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(hours + ":" +minuted1 + ":0" + secondd1);
} if (minuted1 < 10){
pomodoro.setText(hours + ":0" + minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(hours + ":" + minuted1 + ":0" + secondd1);
}
}
}else{
int minuted1 = (int) (millis / 1000) / 60;
int secondd1 = (int) (millis / 1000) % 60;
pomodoro.setText(minuted1 + ":" + secondd1);
if (secondd1 < 10) {
pomodoro.setText(minuted1 + ":0" + secondd1);
}
}
}
@Override
public void onFinish() {
pomodoro.setText("Bitti");
circularViewWithTimermola.setVisibility(View.INVISIBLE);
tur.setVisibility(View.INVISIBLE);
CountDownTimer bekle = new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millis) {
}
@Override
public void onFinish() {
}
}.start();
}
}.start();
}
}.start();
}
}
});
}
}
解决方案
在按钮点击中调用倒数计时器对象(calisma,mola),例如
`mola.onFinish();`
calisma.onFinish();
推荐阅读
- r - 由于在 y 对数刻度中转换无限值导致的奇怪 geom_bar 误差条
- flutter - 提供程序流更改之间的动画
- r - 如何在 Shiny 应用程序中正确使用 MutationObserve
- python-3.x - Plotly 表示不在 PyCharm SciView 中显示图
- c++ - 在运行时选择派生类并运行唯一的类方法
- php - laravel json 选择客户对象使用 hasMany 选择特定数据
- javascript - 如何通过让某人输入变量名来激活特定变量?
- javascript - 如何在nodeJS中检查与firebase db的连接
- kubernetes - 无法访问在 aws eks 中部署的服务
- python - 改进 tesseract 的图像预处理(视频游戏截图)