сохраняет ли edittext данные при изменении конфигурации? мне нужна модель просмотра, если у меня на экране только текст редактирования? - PullRequest
0 голосов
/ 24 марта 2020

так что я новичок в MVVM и в Android в целом, и я немного растерялся. Говорят, что для обработки изменений конфигурации мне нужно использовать MVVM, чтобы избежать разрушения данных из-за изменения конфигурации.

, но кажется, что editText может сохранять данные без использования viewmodel. поэтому я генерирую случайное число и отображаю его в editText и TextView, как это показано в моем фрагменте onCreate.

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        // generate random number
        val min = 20
        val max = 80
        val random = Random().nextInt((max - min) + 1) + min

        testEditText.setText(random.toString())
        testTextView.text = random.toString()

    }

, но результат странный. скажем, например, сгенерированное число 55, в портретной ориентации и editText, и TextView покажут 55. Когда я поверну устройство в альбомную ориентацию, editText по-прежнему будет отображать 55, но textView покажет другое число

, поэтому я У меня есть 2 вопроса:

  1. Это нормальное поведение для editText, чтобы сохранить значение без использования viewModel, как это?
  2. У меня есть 2 editText и кнопка в моем фрагменте. пользователь просто вводит данные в эти 2 editText, и когда кнопка нажата, она просто пропускает введенное значение на следующий экран. здесь нет бизнес-логики c, проверки ввода или работы в сети в этом сценарии можно ли не использовать viewmodel?

1 Ответ

0 голосов
/ 24 марта 2020

нормальное поведение для editText для сохранения значения без использования viewModel, подобного этому

Да. Виджеты с очевидным изменяемым пользователем состоянием сохранят это состояние при изменениях конфигурации. Это включает в себя такие вещи, как текст в EditText и проверенное состояние CheckBox и Switch.

in this scenario, is it okay to not using viewmodel ?

Вероятно. Ничто в том, что вы описали, не требует модели представления. В конце вам нужно будет адекватно протестировать экран и убедиться, что все работает как надо после изменения конфигурации.

...