前提・実現したいこと
カウントダウンタイマーで
リスタートボタンを押したら、cancel()した続きから開始されるようにしたいので
経過時間を取得したい。(今は、毎回初期設定の時間に戻ってしまう。)
該当のソースコード
kotlin
1package com.example.sampletimer 2 3import androidx.appcompat.app.AppCompatActivity 4import android.os.Bundle 5import android.os.CountDownTimer 6import android.widget.Button 7import android.widget.TextView 8 9class MainActivity : AppCompatActivity() { 10 override fun onCreate(savedInstanceState: Bundle?) { 11 super.onCreate(savedInstanceState) 12 setContentView(R.layout.activity_main) 13 14 var allTime:Long = 10000 15 val textView: TextView =findViewById(R.id.textView) 16 val startButton:Button = findViewById(R.id.startButton) 17 val stopButton:Button=findViewById(R.id.stopButton) 18 val restartButton:Button=findViewById(R.id.restartButton) 19 20 21 val timer = object:CountDownTimer(allTime,100){ 22 23 override fun onTick(p0: Long) { 24 //TODO("Not yet implemented") 25 textView.text=p0.toString() 26 } 27 28 override fun onFinish() { 29 //TODO("Not yet implemented") 30 textView.text="タイムアップ" 31 } 32 } 33 34 //スタートボタン 35 startButton.setOnClickListener { 36 timer.start() 37 } 38 39 //ストップボタン 40 stopButton.setOnClickListener { 41 timer.cancel() 42 } 43 44 //リスタートボタン 45 restartButton.setOnClickListener { 46 //allTime= p0 47 timer.start() 48 } 49 } 50}
試したこと
リスタートボタンを押したときに「経過時間」を取得するには
onTickの「p0」らしい、というところまではわかりました。
ということで、それをalltimeに代入しようとしたのですが、アクセスできないため、
そこで書き方がわからず行き詰りました。
補足情報(FW/ツールのバージョンなど)
android studio Arctic Fox | 2020.3.1
回答1件
あなたの回答
tips
プレビュー