im пытается получить значения, но каким-то образом я получаю больше значений. это код, который работает. Кто-нибудь знает, что я делаю неправильно? я действительно искал много мест, но большинство из них устарело. (я проверил элементы 2 и 3) Просто чтобы убедиться, что я только хочу прочитать выбранные флажки списка, но я понятия не имею, откуда взялись 0-1-2-123.Multiselectlistpreference android retrieve values
pref_app.xml
<MultiSelectListPreference
android:title="Categories"
android:key="rssfeeds"
android:summary="List to choose from"
android:entries="@array/catos"
android:entryValues="@array/catovalues"
android:defaultValue="@array/catodefault"
android:dialogTitle="Categories"
>
</MultiSelectListPreference>
strings.xml
<string-array name="catos">
<item >Movies</item>
<item >Test</item>
<item >TEst23</item>
</string-array>
<string-array name="catovalues">
<item >movies-checked</item>
<item >test-checked</item>
<item >test23-checked</item>
</string-array>
<string-array name="catodefault">
<item >movies-default</item>
<item >test-default</item>
<item >TEST23-default</item>
</string-array>
код возврата в основной XML
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
Set<String> selections = preferences.getStringSet("rssfeeds", null);
String[] selected= selections.toArray(new String[] {});
for (int i = 0; i < selected.length ; i++){
System.out.println("\ntest" + i +" : " + selected[i]);
}
Logcat результат:
01-15 14:15:49.016: I/System.out(4555): test0 : test23-checked
01-15 14:15:49.016: I/System.out(4555): test1 : 2
01-15 14:15:49.016: I/System.out(4555): test2 : 1
01-15 14:15:49.016: I/System.out(4555): test3 : 0
01-15 14:15:49.016: I/System.out(4555): test4 : 123
01-15 14:15:49.016: I/System.out(4555): test5 : test-checked
Поиск кода для того, где вы кладете эту информацию в наборе. И btw вы можете просто 'int i = 0; для (Sting s: selections) {System.out.println (" \ ntest "+ i ++ +": "+ s);}' (и я бы сбросил i) –