8

アプリケーションで設定のデフォルト値を設定するために使用していますが、新しい設定を追加すると、 preferences.xmlで設定されていても、デフォルト値が表示されないPreferenceManager.setDefaultValues(context,R.xml.preferences,false)ことに気付きました。PreferenceFragment

これは、 readAgainをfalseとして指定したためですか?

簡単に試してみることができることはわかっていますが、 readAgainがこの目的のためのものであること、つまり、デフォルト値を再読み取りしてユーザー設定をリセットするのではなく、新しいプロパティのデフォルト値を設定することを確認したかっただけです。 。これがまさにreadAgainフラグの目的である場合、ユーザー設定がリセットされないため、readAgainを常にtrueに設定しない理由を教えてください。

4

1 に答える 1

7

フラグをtrueに設定readagainすると、すべてのunset-default値が再度設定されます。それが要約です。

基本的には、コードがそれらをチェックするためにもう一度readagain全体を通過することを意味するため、を設定すると余分なオーバーヘッドが発生します。SharedPreferencefalseの場合、デフォルト値を設定するためのマーカーとして使用されるreadAgainファイル(has_set_default_values.xml )が存在するかどうかを確認するだけです。

いずれの場合も、すでに設定されている値は設定されません。

于 2012-05-14T08:49:48.893 に答える