Warum getStringSet Methode der sharedpreferences nicht funktioniert?
In meine android-app, bin ich mit dieser code-Zeile:
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
Set<String> set = myPrefs.getStringSet("list", new HashSet<String>());
aber ich erhalte folgende Fehlermeldung:
Die Methode getStringSet(String, HashSet) ist undefiniert für die
Typ SharedPreferences
Warum bin ich immer diese Fehlermeldung? Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
getStringSet ist verfügbar ab API-Level 11 (Android 3 Honeycomb).
Prüfen Sie, welche Android-version Sie im Projekt definiert.
http://developer.android.com/reference/android/content/SharedPreferences.html#getStringSet(java.lang.String, java.util.Set)
getStringSet()
wurde in API-Level 11. Ihr build-Ziel (z.B. Projekt - > Eigenschaften > Android) ist etwas niedriger als API-Level 11. Bitte verwenden Sie nur diese Methode, wenn Sie die Einstellung IhresminSdkVersion
11 oder höher.getStringSet()
zuSharedPreferencesCompat
, so gibt es nichts in Android für rückwärts Kompatibilität hier. Sie sind auf Ihrem eigenen, etwas zu tun, wie dieJSONArray
Ansatz gezeigt, in einer anderen Antwort auf diese Frage.Hier ist eine Möglichkeit zur Unterstützung von alten Android-Versionen und die Handhabung der neuen APIs. Es könnte sogar effizienter sein (es werden weniger bytes) :
Hinweis: dies sollte verwendet werden, egal API, da es nicht wirklich konvertieren von/zu dem neuen Weg, Android speichert die Daten.
apply()
erfordert API-9. Ich bekommeCall requires API level 9 (current min is 8): android.content.SharedPreferences.Editor#apply
. Ich würde es ersetzen mitcommit()
aber ich habe immer gesagt, dass wir sollten nie nennencommit()
aus dem UI-thread, da es arbeitet synchron (währendapply()
ist asynchron). Was soll ich tun?string-array
Ressource in XML, und ich bin das abrufen meiner Tätigkeit und mit Ihren Werten zu füllen einHashSet
. Jetzt will ich das HashSet in die SharedPreferences. Wie bekomme ich dieprefKeyResId
zu passieren, um diese Methoden?