2017-09-23 37 views
0

Android準則現在可以針對手機和平板電腦設計設置,對不同類別/設置組使用片段。
由Android Studio中創建的SettingsActivity創建設置片段的每一個一個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); 

僅第一行會創建一個共享偏好文件,只有設置在該片段中定義。
第二行不會被執行(因爲readAgain參數爲假,並且該方法已經由第一行已經被執行的)

在另一方面,設置readAgaintrue將執行每次setDefaultValues

回答

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()'一樣。如果您有許多設置,則您的第二個建議是不切實際的,並且每次添加新設置時都必須添加代碼。最後,問題不是**如何初始化首選項**,但是如何在設置片段的新建議中使用'SetDefaultValues()' – ilomambo