【问题标题】:Setting default CheckBoxPreference always on始终设置默认 CheckBoxPreference
【发布时间】:2014-11-18 01:28:18
【问题描述】:

我有一个CheckBoxPreference,我希望它被默认选中;但它不工作。

这是我的代码:

在我的extends Application 班级:

@Override
public void onCreate() {
    super.onCreate();

    PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    sharedPreferences.getBoolean("notify", true);

}

以及实际的首选项:

    <CheckBoxPreference
        android:key="notify"
        android:title="Push Notifications"
        android:summary="Receive status bar alerts"/>
    </PreferenceCategory>

【问题讨论】:

    标签: android android-preferences


    【解决方案1】:

    您需要将默认值添加到您的 xml。注意android:defaultValue="true"

    android:defaultValue="true"

    <CheckBoxPreference
        android:key="notify"
        android:title="Push Notifications"
        android:summary="Receive status bar alerts"
        android:defaultValue="true"
    />
    

    【讨论】:

    • 哇,这很容易。我以为我在xml 中寻找了一个默认标签。还需要包含其他 java 代码吗?
    • 是的,另一个键是PreferenceManager.setDefaultValues(this, R.xml.preferences, false);。这将从 xml 加载默认值并将它们保存到 SharedPreferences。
    • @kevskree 他/她说什么:stackoverflow.com/questions/3907830/…
    【解决方案2】:

    我只是想为已接受的答案添加一些非常重要的内容。是的,您所要做的就是按照他们所说的添加默认值,如果您查看 cmets,其他人提到您需要使用这行代码实际设置默认值 ->

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

    您可以将该行代码放在您的设置活动中的OnCreate 方法中,或者您可以在您的首选项片段中调用它。

    这是最重要的!如果您已经至少运行了一次应用程序,您将不会看到默认设置被加载。这是因为默认值只设置一次,以防止丢失用户设置。

    因此,如果您想查看默认设置并确保它们正常工作,请卸载您的应用,然后重新运行它。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      相关资源
      最近更新 更多