こんにちは。
今回は、ストップウォッチのボタン非活性処理を追加します。
非活性は、ボタンは見えるけれども押せない処理しない状態です😀
最初は、setVisibility(View.INVISIBLE)を使って作成していましたが、
これはボタン非表示の処理でした💦
非活性にはsetEnabled(false)を使用します。
活性にする場合には、setEnabled(true)を使います。
では、MainActivity.javaにコードを追加しましょう😁
↓ まず、onCreate関数の中、ボタン押下の処理が呼ばれる前に
ストップボタンとリセットボタンを非活性にします。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 画面のテキスト情報を取得
text = findViewById(R.id.textView);
// スタートボタン情報を取得
staBtn = findViewById(R.id.button);
// ストップボタン情報を取得
stoBtn = findViewById(R.id.button2);
// リセットボタン情報を取得
reseBtn = findViewById(R.id.button4);
// ストップボタンを非活性
stoBtn.setEnabled(false);
// リセットボタンを非活性
reseBtn.setEnabled(false);
// スタートボタンが押下された時の処理
・・・・・(処理略)・・・・・
↓ 次は、スタートボタンが押された時の処理です。
スタートボタン押下後は、ストップボタンを活性にします。
// スタートボタンが押下された時の処理
staBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View view) {
// タイマークラス未実行であることを判定
if(null == watchTimer ){
・・・・・(処理略)・・・・・
// ストップボタンを活性
stoBtn.setEnabled(true);
// カウントアップクラス(Timertask)の初期化処理
・・・・・(処理略)・・・・・
}
}
});
↓ お次は、ストップボタン押下時の処理です。
ストップボタンが押された時は、リセットボタンを活性にします。
// ストップボタンが押下された時の処理
stoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// タイマーが実行されていることを確認
if (null != watchTimer) {
・・・・・(処理略)・・・・・
// リセットボタンを活性
reseBtn.setEnabled(true);
}
}
});
↓ リセットボタンが押された時の処理です。
リセットボタンが一回押された後は、初期状態に戻したいので、
ストップボタンとリセットボタンを再び非活性にします✌
// リセットボタンが押下された時の処理
reseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
・・・・・(処理略)・・・・・
// ストップボタンを非活性
stoBtn.setEnabled(false);
// リセットボタンを非活性
reseBtn.setEnabled(false);
}
});
では、エミュレータで動かしてみましょう。
↓ まずは起動後の画面です。
ストップボタンとリセットボタンが非表示です。
ここで、スタートボタンを押してみましょう。
↓ スタートボタン押した後です。
ストップボタンが活性になります。
↓ ストップボタンを押した後の画面です。
リセットボタンが活性になります。
↓ リセットボタン押した後の画面です。
ストップボタンとリセットボタンが非活性になります。
カウンターもStart!に戻りますね。
非活性処理に関しては、決まっている処理があるので、
それを仕様に合わせたタイミングで呼べば簡単に処理されました✌
今日はここまで🤚
では、また次回。
コメント