我想从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文件中获得MainActivity.java的值,因为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);
}
}发布于 2013-12-08 12:10:45
CheckboxPreferences存储在SharedPreferences中。在您的MainActivity中,您可以使用:
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean allowInternet = sharedPreferences.getBoolean("allow_internet", true);发布于 2021-01-14 15:04:38
我也只有在settings.xml中使用defaultValue=false时才会这样做。
我决定使用bool.xml。但是使用https://developer.android.com/guide/topics/ui/settings代替PreferenceManager是很好的实践
https://stackoverflow.com/questions/20453103
复制相似问题