gpt4 book ai didi

android - 如何将倒数计时器连接到按钮

转载 作者:行者123 更新时间:2023-11-30 03:20:38 25 4
gpt4 key购买 nike

我正在使用 Android Studio。我正在创建一个具有倒数计时器和按钮的应用程序。当我运行应用程序时,计时器会自动运行,如果我想单击按钮,则会有一个 TextView 计算我按下按钮的次数。我希望当我按下按钮时计时器启动,倒计时继续运行并在时间“0:000”停止,因此它甚至停止点击计数。你能帮助我吗?(如果它有助于我把代码)

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

txtCount = (TextView)findViewById(R.id.textView1);
txtCount.setText(String.valueOf(count));
btnCount = (Button)findViewById(R.id.button1);
final TextView textViewTimer = (TextView)findViewById(R.id.textView2);
btnCount.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
count++;
txtCount.setText(String.valueOf(count));
}

});
new CountDownTimer(10000, 1) {
public void onTick(long millisUntilFinished) {
textViewTimer.setText("" + millisUntilFinished / 1000
+ ":" + millisUntilFinished % 1000);
}

public void onFinish() {
textViewTimer.setText("0:000");
}
}.start();


}

为了隐私,我不写其他代码的其余部分,但这是感兴趣的部分;)

最佳答案

已编辑

您可以只保存指向您的 CountDownTimer 的链接并在任何您想要的地方使用它。对于您的问题,您可以有两个 bool 变量:timerStarts - 负责启动计时器一次,timerProcessing - 负责检查计时器是否仍在处理。

像这样:

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

txtCount = (TextView)findViewById(R.id.textView1);
txtCount.setText(String.valueOf(count));
btnCount = (Button)findViewById(R.id.button1);

boolean timerProcessing = false;
boolean timerStarts = false;

final TextView textViewTimer = (TextView)findViewById(R.id.textView2);
//Saving link to timer object
final CountDownTimer timer = new CountDownTimer(10000, 1) {
public void onTick(long millisUntilFinished) {
textViewTimer.setText("" + millisUntilFinished / 1000
+ ":" + millisUntilFinished % 1000);
}

public void onFinish() {
textViewTimer.setText("0:000");
timerProcessing = false;
}
});

btnCount.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//start timer once when button first click
if (!timerStarts){
timer.start();
timerStarts = true;
timerProcessing = true;
}

if (timerProcessing){
count++;
txtCount.setText(String.valueOf(count));
}
}
});
}

或者你可以有一个变量(例如 timerStarts),在按钮监听器中检查它并在计时器停止时设置为 false,但是当你在计时器停止后单击按钮时它会再次开始。希望对您有所帮助。

关于android - 如何将倒数计时器连接到按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19214129/

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