获取CheckBoxPreference的值

时间:2013-12-08 11:55:25

标签: android checkboxpreference

我想从CheckBoxPreference获取值,我在Convert/res/xml/settings.xml中定义了它,它的外观如下:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference 
        android:key="allow_internet"
        android:title="@string/internet_label"
        android:summaryOn="@string/internet_on"
        android:summaryOff="@string/internet_off"
        android:defaultValue="true" />
    <CheckBoxPreference 
        android:key="decimal_output"
        android:title="@string/decimal_title"
        android:summaryOn="@string/decimal_summary_on"
        android:summaryOff="@string/decimal_summary_off" />
</PreferenceScreen>

我的问题是如何在CheckBoxPreference文件中获取MainActivity.java的值,因为android:id没有CheckBoxPreference属性,还有一个{我Settings.java中的{1}}文件,如下所示:

Convert/scr/.../Settings.java

2 个答案:

答案 0 :(得分:2)

CheckboxPreferences存储在SharedPreferences中。在MainActivity中,您可以使用:

PreferenceManager.setDefaultValues(this, R.xml.settings, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean allowInternet = sharedPreferences.getBoolean("allow_internet", true);

答案 1 :(得分:0)

我也只在 settings.xml 使用时得到 TRUE defaultValue=false

我决定使用 bool.xml。 但最好使用 https://developer.android.com/guide/topics/ui/settings 代替 PreferenceManager