Я пытаюсь сохранить местоположение в моем предпочтении. Класс SavedLocation хранит три переменные: имя, местоположение и тип местоположения. Все выглядит отлично, пока я не попытаюсь прочитать сохраненные даты из предпочтения. Имя и тип местоположения сохранены отлично, но сохраненное местоположение является нулем. В отладочной сохраненной локации содержатся все нужные переменные, но они выглядят как ed.putString(SAVED_LOCATIONS, gson.toJson(savedLocations, savedLocationsType))
; не пишите правильно мои даты.
private void saveLocation(SavedLocation savedlocation, Context context) {
Gson gson = new Gson();
Type savedLocationsType = new TypeToken<ArrayList<SavedLocation>>() {}.getType();
ArrayList<SavedLocation> savedLocations = getSavedLocations(context);
savedLocations.add(savedlocation);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor ed = prefs.edit();
ed.putString(SAVED_LOCATIONS, gson.toJson(savedLocations, savedLocationsType));
ed.apply();
}
Класс SavedLocation похож:
public SavedLocation(String name, Location location, LocationType type) {
this.name = name;
this.location = location;
this.type = type;
}
Есть предложения?