Android SharedPreferencesでgetStringSetを使う時の注意

SharedPreferences#getStringSet()で取得したSetに変更を加えてはいけない。

Setに変更を加えた状態(removeしたりしてた)で、他のところで同じSetを取得しようとすると、空のSetが返ってきたりしていた。

解決してから気づいたが、公式に書いてあった(^^;; コピーしてから変更しよう。

Set<String> set = preferences.getStringSet("some_key", null);
HashSet<String> copy = new HashSet<>(set);
参考: SharedPreferences | Android Developers  

コメント

タイトルとURLをコピーしました