2012-12-31 163 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" 
/>