Android 复选框首选项屏幕

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

我正在使用以下xml代码执行首选项屏幕:

<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); 
     }
}