gpt4 book ai didi

Android - 计时器布局未更新

转载 作者:行者123 更新时间:2023-11-30 01:26:49 24 4
gpt4 key购买 nike

我是安卓新手。我正在学习创建一个简单的 stop watch 应用程序。我得到了包含三个 button 和一个 textview 的布局。当我点击 start 按钮时,它会启动计时器。

单一布局和单一 Activity 。

  public void startTimer(View view){
running = true;
TextView textView = (TextView) findViewById(R.id.timer);
while(running) {
int hours = seconds / 3600;
int minutes = (seconds % 60) / 60;
int sec = seconds % 60;
String time = String.format("%02d:%02d:%02d", hours, minutes, seconds);
textView.setText(time);
seconds++;
if(seconds == 10){
running = false;
}
}
}

这是当我点击 start 按钮时调用的方法。我调试了代码。值正在正确生成。但不更新布局。

有什么建议吗?

我得到的最终结果是else通过下面的加法一一增加

   protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stop_watch);
runTimer(); //I added this extra.
}

最佳答案

我会为您的任务提供替代解决方案,

 public void startTimer(View view){
new CountDownTimer(10000, 1000) { //For 10 seconds

public void onTick(long seconds) {

String time = String.format("%02d : %02d ",
TimeUnit.MILLISECONDS.toMinutes(seconds),
TimeUnit.MILLISECONDS.toSeconds(seconds) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(seconds))
);
textView.setText(time);
}
}

public void onFinish() {
textView.setText("Finished");
}
}.start();
}

更新:

public void startTimer(View view) {
running = true;
seconds = 0;
textView = (TextView) findViewById(R.id.txtView);
new Thread(new Runnable() {
@Override
public void run() {
while(running) {
runOnUiThread(new Runnable() {

@Override
public void run() {
int hours = seconds / 3600;
int minutes = (seconds % 60) / 60;
int sec = seconds % 60;

time = String.format("%02d:%02d:%02d", hours, minutes, seconds);
textView.setText(time);
seconds++;
}
}) ;

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(seconds==10){
running=false;
}
}
}).start();

}

关于Android - 计时器布局未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328225/

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