2017-09-23 31 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