こんにちは。
今回は、ストップウォッチのリセットボタンを作成します。
とは言っても、リセットボタンは以前作成したタップカウンター
でも作成したので、今回は復習も兼ねてといった形になります😀
↓ まずは、判定用のメンバ変数を用意します。
リセットボタンが押された後のスタートボタンの挙動が異なるため
tureかfalseでリセットボタンを押されたかどうかを確認します。
初期値はfalseにしておきます。
timerSetは後で使用するので覚えておきます。
// 表示する時間
private long timerSet;
// 判定用変数
boolean numCheck = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
↓ リセットボタン押下後の処理を追加します🙂
主にやっていることは、判定にtrueをセットすることと、
表示のカウントを消して、初期値をセットすることです。
// リセットボタンが押下された時の処理
reseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 判定用変数にtrueをセット
numCheck = true;
// カウント表示をリセット
text.setText(“Start!”);
}
});
↓ 次は、スタートボタン押下後の処理を追加します。
7〜12行目の処理を追加しています。
判定がtrue(リセットボタン押下)の場合に、メンバ変数のtimerSet
に0をセットします。(7行目)
これで今までのカウントは0になります。(9行目)
その後は、判定の値をfalseに戻します。(11行目)
これを入れないと永遠に0をセットし続けることになるので・・・💦
@Override
public void onClick (View view) {
// タイマークラス未実行であることを判定
if(null == watchTimer ){
// リセットボタンが押されたかの判定
if (numCheck) {
// 押された場合は、時間に0をセット
timerSet = 0;
// 判定にfalseをセット
numCheck = false;
}
// カウントアップクラス(Timertask)の初期化処理
countUpTime countUpTime = new countUpTime();
// タイマークラスの初期化
watchTimer = new Timer(true);
// タイマークラスのスケジューリング
watchTimer.schedule( countUpTime, 100, 100);
}
}
では、ここで起動してみましょう。
↓ 起動後の画面です。
今まであったリスタートボタンは消しました😓
スタートボタンを再度押すとリスタートするので
いらなくなったのです・・・。
↓ スタートボタン押した後です。1秒ごとにカウントされます。
↓ ストップボタンで止まります。
というか、静止画では全く伝わりませんね・・・😅
↓ リセットボタンを押します。
カウントが止まって、Startが表示されていますね✌
↓ スタートボタンを押すと、0から再開されます。
成功です😁
以前似たような機能を作ってるのでここら辺はサクサクですね。
次回は、ボタンの非活性処理をやってみます。
今日はここまで🤚
では、また次回。