0

我有 3 - 4 个活动。其中之一是主要活动,第二个是偏好屏幕。我有一个具有不同首选项的首选项屏幕,例如具有默认值的 ListPreference 等。

启动项目时如何激活默认设置值?

默认情况下,它们仅在我启动设置活动时激活。很快:我需要在主活动中使用默认值而不调用设置活动。

4

4 回答 4

2

我所做的是在我的 Preferences 活动类中有一个静态方法,因此可以从任何地方调用它:

static public boolean getOrderByDate(Context context) {
    SharedPreferences prefs = 
            PreferenceManager.getDefaultSharedPreferences(context);
    return prefs.getBoolean("order_by_date", true);
}

请注意,我的默认值 (true) 在 getBoolean() 调用中指定。如果您希望在一处指定所有默认值,您可能需要调用 Preference.setDefaultValue() 而不是在 XML 中设置它。

于 2011-02-16T14:30:13.543 回答
0

如果您使用共享首选项,只需这样设置。

public static String PlayerName = "";
public static int CardsCount = 52;
public static int PlayersCount = 5;

还实现 LoadSettings() 和 SaveSettings() 方法,它会正常工作

于 2011-02-16T14:17:22.320 回答
0

使用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");
于 2011-02-16T14:17:35.940 回答
0

有一种方法。查看文档

PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);

onCreate您的主要活动中调用它。它将首选项初始化为存储在 XML 文件中的值。

于 2017-05-23T14:01:35.917 回答