即時嘗試檢索值,但不知何故我得到很多更多的價值回來。 這是即時消息運行的代碼。任何人都知道我做錯了什麼?我在很多地方搜索過,但大多數已經過時。 (我檢查了項目2和3) 只是爲了確保我只想讀出列表中選定的複選框,但我不知道0-1-2-123從哪裏來。在主XMLMultiselectlistpreference android檢索值
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>
返回代碼
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
搜索你的代碼,你把集合中的這些信息。 (順便說一句,選擇){System.out.println(「\ ntest」+ i ++ +「:」+ s);}'(我會放棄我) –