android:defaultValue="true" の CheckboxPreference キーのみが以下のコードに表示されます。そのため、defaultValue="false" のキーは表示されません。では、設定ファイル内のすべてのキーのリストを取得するにはどうすればよいですか?
PreferenceManager.setDefaultValues(this,R.xml.settings,true); //readAgain=false is same result
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
Map<String, ?> prefMap=prefs.getAll();
for(String key:prefMap.keySet()) {
Log.d("preference key=",key); //only keys with true are shown
}
}
ドキュメント getAll() によると、「設定からすべての値を取得する」必要があります。ただし、ユーザーが後でプリファレンスを設定しない限り、default=true のキーのみを取得するようです。
編集:これは Android Bug: 6441に関連している可能性がありますが、すべてのキーを取得するための回避策はありません。