1. ホーム
  2. android

[解決済み] 共有プリファレンスのすべてのキーを繰り返し処理するには?

2023-06-09 12:46:25

質問

SharedPreferencesにgetAllメソッドがありますが、いくつかのキーが存在するにもかかわらず、エントリが返されません。

PreferenceManager.getDefaultSharedPreferences(this).contains("addNewAddress");

が真を返す

Map<String, ?> keys=PreferenceManager.getDefaultSharedPreferences(this).getAll();

は空のマップを返します。

何が問題なのでしょうか?すべての共有プリファレンスのリストを取得するには?

どのように解決するのですか?

あなたがすることができます何を使用することです getAll() のメソッドです。 SharedPreferences にあるすべての値を取得し Map<String,?> にあるすべての値を取得し、それを簡単に反復処理することができます。

Map<String,?> keys = prefs.getAll();

for(Map.Entry<String,?> entry : keys.entrySet()){
            Log.d("map values",entry.getKey() + ": " + 
                                   entry.getValue().toString());            
 }

もっと詳しく知りたい方は PrefUtil.java's dump() の実装が必要です。