1

我想从 a 中获取值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.javaandroid:idCheckBoxPreferenceSettings.javaConvert/scr/.../Settings.java

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Settings extends PreferenceActivity {

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);
    }
}
4

2 回答 2

2

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

PreferenceManager.setDefaultValues(this, R.xml.settings, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean allowInternet = sharedPreferences.getBoolean("allow_internet", true);
于 2013-12-08T12:10:45.810 回答
0

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

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

于 2021-01-14T15:04:38.140 回答