获取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>

我的问题是如何获得MainActivity.java文件中CheckBoxPreference的值,因为CheckBoxPreference没有android:id属性,Convert/scr/.../Settings.java中也有一个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);
    }
}

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

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

settings.xml使用时,我也只得到TRUECCD_ 10。

我决定使用bool.xml。但这是很好的实践使用https://developer.android.com/guide/topics/ui/settings取而代之的是PreferenceManager

相关内容

  • 没有找到相关文章

最新更新