Счетчик не запоминает данные при смене ориентацииAndroid

Фору для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Счетчик не запоминает данные при смене ориентации

Сообщение Гость »


Я пытаюсь добавить возможность сохранять состояние счетчика при изменении ориентации, использовал метод по следующей ссылке, но несмотря на пошаговое выполнение каждого шага, проблема все равно возникает.
>
Я использовал методы onSaveInstanceState из этого видеотекста,

На данный момент мой код выглядит следующим образом, кроме того, возникает вопрос, следует ли мне использовать метод onDestroy.

пакет com.example.cookbook импортировать android.os.Bundle импортировать android.os.CountDownTimer импортировать androidx.fragment.app.Fragment импортировать android.view.LayoutInflater импортировать android.view.View импортировать android.view.ViewGroup импортировать android.widget.Button импортировать android.widget.EditText импортировать android.widget.TextView класс Pasta_Fragment: Fragment(R.layout.fragment_pasta_) { частный lateinit var etMinutes: EditText частный lateinit var btnSetTime: Кнопка частный lateinit var btnReset: Кнопка частный lateinit var tvCountdown: TextView частный вар countdownTimer: CountDownTimer? = ноль частная переменная оставшееся время: Long = 0 переопределить удовольствие onCreateView( надуватель: LayoutInflater, контейнер: ViewGroup?, saveInstanceState: Пакет? ): Вид? { val view = inflater.inflate(R.layout.fragment_pasta_, контейнер, false) etMinutes = view.findViewById(R.id.etMinutes) btnSetTime = view.findViewById(R.id.btnSetTime) btnReset = view.findViewById(R.id.btnReset) tvCountdown = view.findViewById(R.id.tvCountdown) btnSetTime.setOnClickListener { val минут = etMinutes.text.toString().toIntOrNull() if (минуты != ноль && минуты > 0) { startCountdown(минуты * 60) } } btnReset.setOnClickListener { сбросОбратный отсчет() } если (savedInstanceState! = ноль) { // Przywracamy pozostały czas ОставшеесяВремя = saveInstanceState.getLong("оставшеесяВремя") если (оставшеесявремя > 0) { startCountdown(remainingTime.toInt()) } } обратный вид } переопределить удовольствие onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) // Zapisujemy pozostały czas outState.putLong("оставшеесявремя", оставшеесявремя) } частное развлечение startCountdown(totalSeconds: Int) { сбросОбратный отсчет() countdownTimer = объект: CountDownTimer((totalSeconds * 1000).toLong(), 1000) { переопределить fun onTick(millisUntilFinished: Long) { ОставшеесяВремя = миллисУнтилФинишед val минут = millisUntilFinished / 60000 val секунд = (millisUntilFinished % 60000) / 1000 val formattedTime = String.format("%02d:%02d", минуты, секунды) tvCountdown.text = форматированноевремя } переопределить удовольствие onFinish() { ОставшеесяВремя = 0 tvCountdown.text = "00:00" } }.начинать() } частное развлечение resetCountdown() { Таймер обратного отсчета?.cancel() ОставшеесяВремя = 0 tvCountdown.text = "00:00" }

Я попробовал несколько разных способов, но, к сожалению, не нашел решения.
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»