在我的主要活动中,我有一个链接到按钮的方法,当按下按钮时,它应该被禁用,然后发出 HTTP 请求,在方法完成后,应该再次启用按钮。
public void onClick(View view) {
Button button = (Button) findViewById(R.id.my_button);
button.setEnabled(false);
button.setTextColor(Color.GRAY);
try {
// make HTTP request
} catch (IOException e) {
// error
} finally {
button.setEnabled(true);
button.setTextColor(Color.GRAY);
}
}
所以通常按钮在我点击后应该改变颜色,然后我等待请求发生,这将超时,因此我等待 3 秒,然后按钮的颜色应该变回来。
不幸的是,颜色/按钮不会更新一次,直到方法完成。这是什么原因?它是如何正确完成的?