2012-12-31 106 views
7

我有一个复选框和一个ListPreference,我想通过复选框禁用/启用ListPreference。我读了很多,我发现只能使用java(而不是xml)。这是对的吗?现在,读取“checkboxPref”(布尔真/假)的值后,我不怎么做。CheckBoxPreference和依赖项

SharedPreferences prefs3 = PreferenceManager.getDefaultSharedPreferences(this); 
     listener = new SharedPreferences.OnSharedPreferenceChangeListener() { 
      public void onSharedPreferenceChanged(SharedPreferences prefs, String listpref) {  

       CheckboxPreference = prefs.getBoolean("checkboxPref", true); 
       } }; 

     prefs3.registerOnSharedPreferenceChangeListener(listener); 

的preferences.xml:

<CheckBoxPreference 
         android:title="Notifify" 
         android:defaultValue="true" 
         android:key="checkboxPref" /> 
      <ListPreference 
     android:entries="@array/numberOptions" 
     android:entryValues="@array/numberValues" 
     android:key="number" 
     android:title="Number" /> 

回答

30

添加

android:dependency="checkboxPref" 

到ListPreference XML

结果:

<ListPreference 
     android:entries="@array/numberOptions" 
     android:entryValues="@array/numberValues" 
     android:key="number" 
     android:title="Number" 
     android:dependency="checkboxPref" 
/>