Android-активность теряет ввод из пользовательского интерфейса при нажатии кнопки «Назад» - PullRequest
0 голосов
/ 12 октября 2018

Я новичок в программировании на Android.

Я создал простое приложение Empty Activity в Android Studio, и оно имеет множество полей пользовательского интерфейса.После того, как я введу эти поля ввода, если я нажму кнопку «Назад», действие будет уничтожено с потерей всех введенных мной данных.

Но если я нажму кнопку «Домой», переключусь на другое приложение и вернусь к моему приложению, данныетам есть.

Что мне нужно сделать, чтобы я не потерял введенные данные?

Обновление:

Похоже, мне придется использовать общие настройки.

Но интересно, как такие приложения, как Google Chrome, могут сохранять огромный объем данных, таких как веб-страница, поля ввода на веб-странице и т. Д.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Для огромных кусков данных вы можете использовать базу данных SQLite для Android.Для этой цели вы должны использовать room, Room - это библиотека Android для сохранения данных.Отметьте Практическое руководство для комнаты out.

Если ваши данные невелики, вы также можете использовать Shared Preferences.Если вам нужно только хранить пользовательские данные, такие как входные данные, до тех пор, пока приложение работает, вам следует использовать ViewModel для этого.отметьте это Просмотр модели руководства .

0 голосов
/ 12 октября 2018

Нажав назад, вы по существу разрушаете Activity и теряете все введенные данные.

Вы можете использовать Shared Preferences , чтобы сохранить и извлечь любые введенные вами данные.

Сначала инициализируйте SharedPreferences:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();

Затем извлеките текст, введенный вами из EditText, и замените YOUR_TEXT ниже.

editor.putString("unique_name", YOUR_TEXT);
editor.commit();

Имейте в виду, что

уникальное имя

должно быть уникальным именем для каждого значения, которое вы хотите сохранить.

После закрытия и возврата к действию вы можете получить сохраненное вами значение, например, так:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
String YOUR_TEXT = sharedPref.getString("unique_name", "");
...