Android 复选框首选项屏幕
我正在使用以下xml代码执行首选项屏幕:Android 复选框首选项屏幕,android,checkbox,preferences,Android,Checkbox,Preferences,我正在使用以下xml代码执行首选项屏幕: <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:orderingFromXml="true"> <PreferenceCategory android:key="pref1" android:title="Search All"> <CheckBoxPreferen
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:orderingFromXml="true">
<PreferenceCategory
android:key="pref1"
android:title="Search All">
<CheckBoxPreference
android:key="check_all"
android:title="Check"/>
</PreferenceCategory>
<PreferenceCategory
android:title="Specific Search"
android:key="pref2">
<ListPreference
android:title="Food"
android:key="opcion1"
android:dialogTitle="Escoge Categoria"
android:entryValues="@array/codigoCateg"
android:entries="@array/categorias"
android:negativeButtonText="Cancel"/>
<ListPreference android:title="Dificultad"/>
<ListPreference android:title="Otras"/>
</PreferenceCategory>
}
我想做的是,如果选中该复选框,则应禁用pref2(preferencecategory2),如果未选中,则应启用它。有些事情我做错了,也许不止一件
谢谢
我遵循Alex的回答,对desire代码进行了一些修改,下面是已更正的代码:
public class OpcionesBusqueda extends PreferenceActivity {
private CheckBoxPreference Check;
private PreferenceCategory Pref2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.video_search);
Check=(CheckBoxPreference)findPreference("check_all");
Pref2=(PreferenceCategory)findPreference("pref2");
Check.setOnPreferenceChangeListener(new CheckBoxPreference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(final Preference preference, final Object newValue) {
Pref2.setEnabled((Boolean)newValue == false);
return true;
}
});
}您可能需要为
检查所有首选项设置onpreferencechangeenner
,并在onpreferencechangeenner
内更改onPreferenceChaged
CheckBoxPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
boolean onPreferenceChange(Preference preference, Object newValue) {
Pref2.setEnabled((Boolean)newValue == false);
}
}
是的,这是正确的答案,但我不得不做一些改变。我把它放在正确的代码上面。再次感谢!!
CheckBoxPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
boolean onPreferenceChange(Preference preference, Object newValue) {
Pref2.setEnabled((Boolean)newValue == false);
}
}