Button
押した後、カウントダウンを開始し、ボタンにカウントダウンを表示する必要があります。
どうすれば続行できますか?
Button
押した後、カウントダウンを開始し、ボタンにカウントダウンを表示する必要があります。
どうすれば続行できますか?
次のコードは、あなたが求めていることを非常に簡単に実現します。これは非常に簡単です。実装する必要がありonFinish()
、場合によってonTick()
はもう少し実装する必要があります。しかし、これはあなたが望んでいることを簡単に達成するための最小限のコードです。
あなたがしたいのはCountDownTimer
、AndroidAPIに付属しているものを使用することです。
private long countDown = 3000;
private long interval = 1000;
private CountDownTimer countDownTimer;
this.countDownTimer = new CountDownTimer(this.countDown, this.interval) {
@Override
public void onTick(long millisUntilFinished) {
colorButton.setText(Long.toString(millisUntilFinished/1000));
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
};
this.colorButton.setText(Long.toString(this.countDown/1000));
this.colorButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
countDownTimer.start();
}
});
これを試して
public class CountDown extends Activity implements OnClickListener {
Button btn;
int i=0, second = 3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener( this );
}
@Override
public void onClick(View v) {
new Thread( new Runnable() {
public void run() {
while( i != second ) {
try {
handle.sendMessage( handle.obtainMessage());
Thread.sleep(1000);
} catch( Throwable t) {
}
}
}
Handler handle = new Handler() {
public void handleMessage( Message msg) {
btn.setText( ""+ second );
second--;
}
};
}).start();
}
}