Android:首选项默认值

发布于 2024-10-18 05:20:48 字数 170 浏览 4 评论 0原文

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

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

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

I have 3 - 4 Activities. One of those is the main activity and a second one is a Preference Screen. I have a preference screen with different Preferences like ListPreference etc that have default values.

How can i activate default Value of Settings when I start my project?

By default, they activate only when I start the Settings Activity. Shortly: I need to use the default value in the main activity without calling the Settings Activity.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无尽的现实 2024-10-25 05:20:48

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

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

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

What I do is have a static method in my Preferences activity class, so it can be called from anywhere:

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

Note that my default value (true) is specified here in the getBoolean() call. If you want all the defaults specified in one place, you might need to call Preference.setDefaultValue() rather than setting it in the XML.

逆光下的微笑 2024-10-25 05:20:48

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

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

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

Just set it like that if you use Shared Preferences.

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

Also implement LoadSettings() and SaveSettings() methods and it will work fine

暗喜 2024-10-25 05:20:48

使用 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");

Store the preferences using SharedPreferences, and load them in your MainActivity. SharedPreferences has get methods that you pass in a default value to return if the preference doesn't yet exist.

Update: Code Example

In your Main Activity

// 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");
秋叶绚丽 2024-10-25 05:20:48

有一个方法可以做到这一点。请参阅文档

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

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

There is a method for this. See the docs

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

Call it at in the onCreate of your main activity. It initializes the preferences to the values stored in your XML file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文