私は以下のようなクラスを持っていると仮定します。まずCountDownTimer
が公開されていますが、今はnullです。CountDownTimer
を開始する方法はstartCountDownTimer
です。countdowntimer
を設定する方法はstartCountDownTimer
ですが、後でボタンをクリックしてキャンセルする場合はキャンセルしますパブリックスコープとnullに変数を作成しました。メソッドの外でCountDownTimer
をキャンセルしようとすると、NullPointerExceptionが発生するので、どうすればCountDownTimer
をキャンセルできますか? (私は公共のスコープで私のCountDownTimer
のすべてを作成したいいけない。)CountDownTimerをメソッド外でキャンセルするにはどうすればよいですか?
public class test {
CountDownTimer countdowntimer;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
startCountDownTimer();
}
void startCountDowntimer(){
countdowntimer = new CountDownTimer(10000, 1) {
@Override
public void onTick(long millisUntilFinished) {
minText.setText(formatTimeMinutes(millisUntilFinished));
secondsText.setText(formatTimeSeconds(millisUntilFinished));
}
@Override
public void onFinish() {
Toast.makeText(this,"Timer Finished",Toast.LENGTH_LONG).show();
}
}.start();
}
@Override
public void onBackPressed() {
super.onBackPressed();
countdowntimer.cancel();
}
}
初心者にはわかりませんが、*してください。*問題文を句読点を使ってわかりやすい文章に置き換えてください。 – lenz
大文字と小文字の空白 – jwvh