由于不能在UI线程上调用Thread.sleep(只显示最终结果),因此应该在另一个线程上执行此操作,例如:
在构造函数上:
private Handler handler;
public void onCreate(Bundle x) {
//super and get bt
final Button bt = findViewById(R.id.button);
handler = new Handler() {
public void handleMessage(Message msg) {
if(msg.what == 0)
bt.setText("Click!");
else
bt.setText(String.toString(msg.what));
}
}
}
public void buttonOnClick (View button) {
final Button bt = findViewById(R.id.button);
bt.setText("3");
//wait 1 second
handler.sendEmptyMessageDelayed(2, 1000);
//wait 2 second
handler.sendEmptyMessageDelayed(1, 2000);
//wait 3 second
handler.sendEmptyMessageDelayed(0, 1000);
bt.setText("Click!");
}
注意,我确实使用了msg.what这是此类的标识符,但是您可以创建一个带有obj参数的消息,稍后可以使用它。