gpt4 book ai didi

java - 处理程序未实时更新 int

转载 作者:行者123 更新时间:2023-12-01 21:09:12 24 4
gpt4 key购买 nike

我正在尝试制作一个启动计时器的按钮(仅限秒)。每当按下它时,计时器都会重置回 0,并再次开始每秒递增。这里我有一个处理程序,但它不会实时更新,它仅在您单击按钮时更新。我错过了什么?

public class MainActivity extends Activity {

Handler mHandler = new Handler();
int mSeconds;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
downloadedImg = (ImageView) findViewById(R.id.imageView);
}

Runnable UpdateRunnable = new Runnable() {
@Override
public void run() {
updateSec();
}
};

public void updateSec() {
mSeconds++;
mHandler.postDelayed(UpdateRunnable, 1000);
}

public void clickAsync(View view) {

new ImageDownloader().execute(downloadUrl);
Button button = (Button) view;
mSeconds = 0;

button.setText("Seconds since clicked: " + mSeconds);
//actively increment and update seconds on button every second
//set seconds to 0 on click
updateSec();
}
}

最佳答案

it only updates when you click the button. What am I missing?

因为 button.setText 仅在单击 Button 时调用。在递增 mSeconds 之前,在 run() 内调用 button.setText:

    public void run() {
button.setText("Seconds since clicked: " + mSeconds);
updateSec();
}

并在 clickAsync 方法外部访问 button,并在 clickAsync 方法外部声明它。

关于java - 处理程序未实时更新 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41525486/

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