私の主な活動では、ボタンにリンクされたメソッドがあり、ボタンが押されたときに無効にする必要があり、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 秒間待ってから、ボタンの色が元に戻るはずです。
残念ながら、メソッドが終了するまで、色/ボタンは一度も更新されません。その理由は何ですか?それはどのように適切に行われますか?