Сохраненное местоположение на Preferance всегда равно нулю - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь сохранить местоположение в моем предпочтении. Класс 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;
}

Есть предложения?

1 Ответ

0 голосов
/ 08 января 2020

Попробуйте это

Создать переменную для SharedPreferences и Editor.

  SharedPreferences pref;
  Editor editor;
  String PREF_NAME="my_location"

Теперь получите предпочтение

    pref = this.getSharedPreferences(PREF_NAME, 0);
    editor = pref.edit();

Теперь добавьте местоположение к preference

  editor.putString(SAVED_LOCATIONS, gson.toJson(savedLocations, savedLocationsType));
    editor.commit();

Затем получить данные

  String location=pref.getString(savedLocations, "defaultvalue");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...