Java 在DefaultSharedReferences中启用并选择一个首选项
我正在尝试启用DefaultSharedReferences中的项目 在preferences.xml中,我将值更改为Java 在DefaultSharedReferences中启用并选择一个首选项,java,android,Java,Android,我正在尝试启用DefaultSharedReferences中的项目 在preferences.xml中,我将值更改为android:enabled=“false” 现在,我正在尝试创建一段代码,当选中DefaultSharedReferences中其他地方的复选框时,将启用此首选项 我的XML文件: <CheckBoxPreference android:key="checkboxinternet" android:title="Check
android:enabled=“false”
现在,我正在尝试创建一段代码,当选中DefaultSharedReferences中其他地方的复选框时,将启用此首选项
我的XML文件:
<CheckBoxPreference
android:key="checkboxinternet"
android:title="Checkbox Preference"
android:summary="Check it on, check it off"
/>
这是可能的,尝试更改已启用和可选择的值,已经研究了几天,并且开始相信这是不可能的
更新
到目前为止,我已经完成了以下部分的工作,只要按下复选框,我就可以让它执行某些操作。但我仍然无法让它工作,使列表或其他复选框启用或可选择
到目前为止我的代码
ingevuldesysteeminstellingen = PreferenceManager.getDefaultSharedPreferences(this);
listener = new SharedPreferences.OnSharedPreferenceChangeListener()
{
public void onSharedPreferenceChanged(SharedPreferences ingevuldesysteeminstellingen,String key)
{
if (key.equals( "checkboxautomaticrefresh"))
{
System.out.println("Checkbox automatic refresh werd uitgelezen");
//refreshtijdenable();
}
else
{
}
}
};
ingevuldesysteeminstellingen.registerOnSharedPreferenceChangeListener(listener);
那么,我下一步要做什么才能使列表或复选框启用或不启用。您可以在您的
首选项活动中使用以下代码:
//Retrieve the other checkbox
CheckBoxPreference otherCheckboxPref =
(CheckBoxPreference) getPreferenceManager().findPreference("othercheckboxpreff");
//Set a listener to the checkbox
otherCheckboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
//Retrieve the 'checkboxinternet'
CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxinternet");
//If it's checked, set the 'checkboxinternet' Enabled property to true
if (newValue.toString().equals("true"))
{
checkboxPref.Enabled = true;
}
//Else , set it to false
else
{
checkboxPref.Enabled = false;
}
return true;
}
});
不知何故,我无法启用DefaultSharedReferences中的某些内容。findPreference()对于defaultsharedpreferences似乎根本不起作用。执行此行时:CheckBoxPreference checkboxPref=(CheckBoxPreference)getPreferenceManager()。findPreference(“checkboxinternet”);整个程序崩溃了,任何人都知道。崩溃时会出现什么异常?
//Retrieve the other checkbox
CheckBoxPreference otherCheckboxPref =
(CheckBoxPreference) getPreferenceManager().findPreference("othercheckboxpreff");
//Set a listener to the checkbox
otherCheckboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
//Retrieve the 'checkboxinternet'
CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxinternet");
//If it's checked, set the 'checkboxinternet' Enabled property to true
if (newValue.toString().equals("true"))
{
checkboxPref.Enabled = true;
}
//Else , set it to false
else
{
checkboxPref.Enabled = false;
}
return true;
}
});