_ Handler handler = new Handler();
if (v.getId() == R.id.play){
handler.postDelayed(new Runnable() {
public void run() {
play.setBackgroundResource(R.drawable.ilk);
}
}, 2000);
play.setText("Play");
}
_
最初に背景を設定し、2秒後、コードはplay.setText("Play");
である次の行に続きます。これの代わりに、最初のテキストが表示されます。 2秒後に背景が変化します。
Handler.postDelayed
すぐに戻ります。そして次の行が実行されます。指定されたミリ秒後、Runnable
が実行されます。
したがって、コードは次のようになります。
void doFirstWork() {
Handler handler = new Handler();
if (v.getId() == R.id.play){
handler.postDelayed(new Runnable() {
public void run() {
play.setText("Play");
doNextWork();
}
}, 2000);
play.setBackgroundResource(R.drawable.ilk);
}
}
void doNextWork() {
...
}
最初に背景を設定します。その後、ハンドラー内にテキストを設定します。 postDelayedの最後に遅延を設定したため、指定された遅延の直後、または場合によっては2秒後に起動します。
if (v.getId() == R.id.play){
play.setBackgroundResource(R.drawable.ilk);
new Handler().postDelayed(new Runnable() {
public void run() {
play.setText("Play");
}
}, 2000);
}