前提・実現したいこと
android studioでjavaで5分、10分、15分から時間を選べるカウントダウンタイマーのアプリを作成してるのですが、「5分」「10分」「15分」ボタンを押すとその時間がセットされるような動きをさせることができません。
ボタンを押したときの発生するイベントに時間がセットされるように書きましたが、エラーが出てしまい動きませんでした。
どうすればよいでしょうか?
作りかけなので汚い文章になってるかもしれません。
発生している問題・エラーメッセージ
該当のソースコード
package com.example.timer; //AndroidX import androidx.appcompat.app.AppCompatActivity; //import android.support.v7.app.AppCompatActivity; import android.os.CountDownTimer; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.text.SimpleDateFormat; import java.util.Locale; public class MainActivity extends AppCompatActivity { private TextView timerText; long countNumber = 300000; // インターバル msec long interval = 10; final CountDown countDown = new CountDown(countNumber, interval); class CountDown extends CountDownTimer { CountDown(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } @Override public void onFinish() { // 完了 timerText.setText(dataFormat.format(0)); } // インターバルで呼ばれる @Override public void onTick(long millisUntilFinished) { // 残り時間を分、秒、ミリ秒に分割 //long mm = millisUntilFinished / 1000 / 60; //long ss = millisUntilFinished / 1000 % 60; //long ms = millisUntilFinished - ss * 1000 - mm * 1000 * 60; //timerText.setText(String.format("%1$02d:%2$02d.%3$03d", mm, ss, ms)); timerText.setText(dataFormat.format(millisUntilFinished)); } } private SimpleDateFormat dataFormat = new SimpleDateFormat("mm:ss.SSS", Locale.US); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button startButton = findViewById(R.id.start_button); Button stopButton = findViewById(R.id.stop_button); Button fiveButton = findViewById(R.id.five_button); Button tenButton = findViewById(R.id.ten_button); Button fifteenButton = findViewById(R.id.fifteen_button); Button resetButton = findViewById(R.id.reset_button); timerText = findViewById(R.id.timer); timerText.setText(dataFormat.format(0)); tenButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { long countNumber = 600000; // インターバル msec long interval = 10; } }); startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 開始 countDown.start(); } }); stopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 中止 countDown.cancel(); } }); resetButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 中止 countDown.cancel(); timerText.setText(dataFormat.format(0)); } }); } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> ボタンを押したときの発生するイベントに時間がセットされるように書きましたが、エラーが出てしまい動きませんでした
どのようなエラーが出たのか, ご質問を編集して追記して頂けますか.
ごめんなさい、前回はエラーが出たのですがなにかを改変したのがきっかけでビルドには成功しました。
初期値に5分と設定されていているのですが、表記の仕方がわからず10分のボタンを押しても変わらず5分のカウントしかされません。
> ビルドには成功しました
であれば, そうご質問を修正して頂けますか. でなければ, エラーによって動作していないのかと思ってしまいます.
> ~5分のカウントしかされません
こちらに関しても同様に, ご質問の修正をお願いできますか.