Я использую SharedPreferences
для хранения пользовательского ввода, чтобы при закрытии приложения и его повторном запуске пользовательский ввод оставался там и не удалялся автоматически. Но когда я повторно запускаю приложение после его закрытия, пользовательский ввод не отображается на экране, пока пользователь не добавит другой ввод. После того, как пользователь добавляет еще один вход, входные данные, которые были добавлены в сеансе до закрытия приложения, теперь отображаются на экране. Есть идеи, почему это может происходить? Спасибо!
Это - то, что происходит в случае необходимости наглядного примера.
Это метод, отвечающий за загрузку введенных пользователем данных, и я называю этот метод по методу onCreate
:
public void loadSemesters() {
sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString("SEMESTER_LIST", null);
Type type = new TypeToken<ArrayList<Semester>>() {
}.getType();
mySemesters = gson.fromJson(json, type);
if (mySemesters == null) {
mySemesters = new ArrayList<>();
}
}
Этот метод отвечает за сохранение введенных пользователем данных:
public void saveSemesters() {
sharedPreferences = getSharedPreferences("shared preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Semester>>() {
}.getType();
String json = gson.toJson(mySemesters, type);
editor.putString("SEMESTER_LIST", json);
editor.apply();
}