gpt4 book ai didi

java - 我该如何修复此代码,以便我的 android textview 使用倒计时器更新并显示剩余的秒数?

转载 作者:行者123 更新时间:2023-12-01 18:47:54 32 4
gpt4 key购买 nike

我正在尝试制作电影倒计时中的倒计时应用程序。我对编码很陌生。这里的目标是更新显示剩余生存秒数的 TextView 。这是我为实现这一目标而编写的 java 代码。我知道其他方面比如年、日、时、分还没有完成。


import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
private TextView mTextViewCountDownYears;
private TextView mTextViewCountDownDays;
private TextView mTextViewCountDownHours;
private TextView mTextViewCountDownMinutes;
private TextView mTextViewCountDownSeconds;

private Button mButtonAccept;

private CountDownTimer mCountDownTimer;

private Boolean mTimerRunning;

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

Calendar deathDay = Calendar.getInstance();
deathDay.set(2021,7,24,10,14,45);
Calendar today = Calendar.getInstance();

long diff = deathDay.getTimeInMillis() - today.getTimeInMillis();
timeLeftToLive = diff;

mTextViewCountDownYears = findViewById(R.id.text_view_countdown_years);
mTextViewCountDownDays = findViewById(R.id.text_view_countdown_days);
mTextViewCountDownHours = findViewById(R.id.text_view_countdown_hours);
mTextViewCountDownMinutes = findViewById(R.id.text_view_countdown_minutes);
mTextViewCountDownSeconds = findViewById(R.id.text_view_countdown_seconds);

mButtonAccept = findViewById(R.id.button_accept);

mButtonAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startTimer();
}
});
}
private void startTimer(){
mCountDownTimer = new CountDownTimer(timeLeftToLive, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeLeftToLive = millisUntilFinished;
updateTextView();
}

@Override
public void onFinish() {

}
};
}
private void updateTextView() {
long secondsLeft = timeLeftToLive / 1000;

String secondsLeftFormatted = String.format("%02d",secondsLeft);

mTextViewCountDownSeconds.setText(secondsLeftFormatted);
}
}

最佳答案

你的代码看起来不错,而且你已经很接近它正常工作了!您只需在 startTimer() 函数内的 CountDownTimer 定义末尾添加一个 .start() 即可(在半函数之前)冒号)。像这样:

private void startTimer(){
mCountDownTimer = new CountDownTimer(timeLeftToLive, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeLeftToLive = millisUntilFinished;
updateTextView();
}

@Override
public void onFinish() {

}
}.start();
}

有一个很好的例子供您引用here如果你需要的话

关于java - 我该如何修复此代码,以便我的 android textview 使用倒计时器更新并显示剩余的秒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59793313/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com