私は Android の初心者です (プログラミングを始めて約 1 か月が経ちましたが、ほとんどの時間をこの質問と格闘していたようです!)
タイマーアプリを作ろうとしています。現時点では、タイマーを開始するボタン (もう一度押すと時間を 0 にリセットする) とタイマーを一時停止する停止ボタン (もう一度押すと何もしない) の 2 つのボタンがあります。
これらのボタンに次のことをさせようとしています:
- ボタン 1 = 一度押すとタイマーが開始します。タイマーの実行中に押すと一時停止し、タイマーの一時停止中に押すと再開します
- ボタン 2 = 押すとタイマーが再起動します
私のJavaコードは次のとおりです。
//within on create
start = (Button)findViewById(R.id.start);
stop = (Button)findViewById(R.id.stop);
tv = (TextView)findViewById(R.id.tv);
tv.setText("30"); // starting from 30.
final MyCounter timer = new MyCounter(30000,1000);
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
stop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});
}
public class MyCounter extends CountDownTimer{
public MyCounter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
System.out.println("Timer Completed.");
tv.setText("Timer Completed.");
}
@Override
public void onTick(long millisUntilFinished ) {
tv.setText((millisUntilFinished/1000 + ":" + millisUntilFinished/100));
System.out.println("Timer : " + (millisUntilFinished/1000));
}
}
タイマーを一時停止して再開するには、インスタンスの状態を保存して復元する必要があると思います。boolean を使用して、button1 ('start') の onclicklistner を変更する必要があります。タイマーが実行中で、button1 がクリックされた場合、これを実行します。