我有 3 - 4 个活动。其中之一是主要活动,第二个是偏好屏幕。我有一个具有不同首选项的首选项屏幕,例如具有默认值的 ListPreference 等。
启动项目时如何激活默认设置值?
默认情况下,它们仅在我启动设置活动时激活。很快:我需要在主活动中使用默认值而不调用设置活动。
我有 3 - 4 个活动。其中之一是主要活动,第二个是偏好屏幕。我有一个具有不同首选项的首选项屏幕,例如具有默认值的 ListPreference 等。
启动项目时如何激活默认设置值?
默认情况下,它们仅在我启动设置活动时激活。很快:我需要在主活动中使用默认值而不调用设置活动。
我所做的是在我的 Preferences 活动类中有一个静态方法,因此可以从任何地方调用它:
static public boolean getOrderByDate(Context context) {
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
return prefs.getBoolean("order_by_date", true);
}
请注意,我的默认值 (true) 在 getBoolean() 调用中指定。如果您希望在一处指定所有默认值,您可能需要调用 Preference.setDefaultValue() 而不是在 XML 中设置它。
如果您使用共享首选项,只需这样设置。
public static String PlayerName = "";
public static int CardsCount = 52;
public static int PlayersCount = 5;
还实现 LoadSettings() 和 SaveSettings() 方法,它会正常工作
使用SharedPreferences存储首选项,并将它们加载到您的 MainActivity 中。SharedPreferences 具有 get 方法,您可以传入默认值以在首选项尚不存在时返回。
更新:代码示例
在您的主要活动中
// get the shared preferences for your package context
SharedPreferences sharedPreferences = PreferencesManager.getSharedPreferences(this);
// get the boolean preference with a default value of false
boolean somePref = sharedPrefernces.getBoolean("somePref", false);
// get the string preference with a default value of "default"
String someOtherPref = sharedPreferences.getStirng("someOtherPref", "default");
有一种方法。查看文档
PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);
在onCreate
您的主要活动中调用它。它将首选项初始化为存储在 XML 文件中的值。