Получить все выбранные записи из MultiSelectListPreference(SharedPreferences)
Я хочу использовать MultiSelectListPreference для создания массива элементов и поиска их в xml.
Я создал MultiSelectListPreference в XML (res / xml / preferences.в XML)
<MultiSelectListPreference
android:dialogTitle="@string/coursesTitle"
android:key="searchedCourses"
android:summary=""
android:title="@string/coursesTitle"
android:entries="@array/courses"
android:entryValues="@array/courses"
android:defaultValue="@array/empty_array"
android:dependency="own_courses"
/>
Я создал фрагмент предпочтения и действие предпочтения. Я уже могу выбрать предметы, которые хочу найти.
теперь я хочу прочитать выбранные элементы.
Я пробовал с
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String rawval = sharedPref.getString("searchedCourses", "NA");
String[] selected = this(context, null).parseStoredValue(rawval);
Toast.makeText(context, selected[0], Toast.LENGTH_LONG).show();
и аналогичные "решения", которые я нашел онлайн, но это не работает.
2 ответов
хотя я не очень хорошо знаком с ними, я ожидал бы, что это сработает:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
Set<String> selections = sharedPrefs.getStringSet("searchedCourses", null);
Toast.makeText(context, selections.get(0), Toast.LENGTH_LONG).show();
какое поведение вы видите?
спасибо:) метод getStringSet () был решением. Я немного изменил код, хотя:
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
Set<String> selections = sharedPrefs.getStringSet("searchedCourses", null);
String[] selected = selections.toArray(new String[] {});
Toast.makeText(context, selected[all], Toast.LENGTH_LONG).show();
Я очень благодарна.
PS: ваше решение приводит к ошибке: метод get () не определен для набора типов. Не знаю, почему.