2017-09-23 4 views
0

Androidのガイドラインでは、さまざまなカテゴリ/設定のグループに対してフラグメントを使用して、電話とタブレットの両方の設定を設計するようになりました。
のAndroid Studioで作成したSettingsActivityが設定フラグメントのそれぞれに対して1つのXMLファイルを作成します。フラグメント設定の構造を使用する場合のsetDefaultValues

pref_general.xml 
pref_notifications.xml 

を、どのようにする方法setDefaultValues(context,resId,readAgain)は、最初の共有設定ファイルを作成するために使用されるようになっていますか?

あなたのコードに入れた場合、MainACtivity

PreferenceManager.setDefaultValues(this, R.xml.pref_general, false); 
PreferenceManager.setDefaultValues(this, R.xml.pref_notifications, false); 

に最初の行のみがそのフラグメントに定義された設定のみで、共有設定ファイルを作成します。 truereadAgainは毎回setDefaultValues実行する設定、一方

readAgainパラメータが偽であるため、この方法は、最初の行によって既に実行されている)
2行目は実行されません。

答えて

0

Xmlファイルでandroid:defaultValueを使用できます。

android:defaultValue: 設定される設定のデフォルト値のいずれかの永続性は、オフであるか、または永続性であり、優先 が永続ストレージに見つからない場合。

<SwitchPreferenceCompat 
    android:key="key1" 
    android:title="Switch Preference" 
    android:summary="Switch Summary" 
    android:defaultValue="true" /> 

それともプログラムにより、それはこの方法で行うことができます

//this returns whatever preference was set for key1 in PreferencesPage 
or the default value if nothing was set 

sharedPreferences.getBoolean("key1", true)); 
+0

あなたの最初の提案はsharepreferencesファイル、 'SetDefaultValuesを(作成されません)'ありません。 2番目の提案は、多くの設定がある場合は実用的ではなく、新しい設定を追加するたびにコードを追加する必要があります。そして最後に、**プリファレンスを初期化する方法はありませんでした**しかし、設定の断片の新しい推奨に沿って 'SetDefaultValues()'を使う方法はありませんでした。 – ilomambo

関連する問題