Как добавить новое значение в listpreference и сохранить его?

У меня есть список Preference, созданный из ресурса xml. Я добавил предпочтение, которое создало диалоговое окно, в котором пользователь может добавить значение в listPreference.

используя эти методы, я добавил новое значение:

  entries = getEntries();
  entryValues = getEntryValues();

когда пользователь добавляет значения в listpreference, оно отображается. Но когда preferenceScreen воссоздает новое значение, оно исчезает.

Как я могу сохранить эти новые значения?


person Sergey Maslenyuk    schedule 11.07.2012    source источник


Ответы (1)


Проблема в том, что когда вы снова открываете свой PreferenceScreen, он загружает значения ListPreference из XML. Вы можете изменить это поведение, используя методы setEntries() и setEntryVaues() из ListPreference. Конечно, вам нужно как-то хранить все значения и их индексы, которые вводят ваши пользователи. Вы можете использовать для этого базы данных или SharedPreferences. Надеюсь это поможет.

ИЗМЕНИТЬ

Сохранение значения ListPreference в SharedPreferences:

preferences.edit().putString(listPreference.getKey(), listPreference.getValue());
person Egor    schedule 11.07.2012
comment
не могли бы вы привести пример, как использовать редактор для сохранения listprefrence? - person Sergey Maslenyuk; 11.07.2012
comment
извините, но это спасет только выбор варианта. как я могу сохранить весь новый список со значениями - entryValues? - person Sergey Maslenyuk; 11.07.2012
comment
@user1150489 user1150489, вы можете использовать разные методы для хранения набора строк или хранить их в базе данных. - person Egor; 11.07.2012
comment
Да, как альтернатива. Я думаю, что есть готовый способ сделать это :) - person Sergey Maslenyuk; 11.07.2012