2012-12-31 12 views
7

Ho una casella di controllo e un ListPreference, mi piacerebbe disabilitare/abilitare ListPreference da casella di controllo. Ho letto molto e ho trovato che è possibile usare solo java (e non da xml). È corretto? Ora, dopo aver letto il valore di "checkboxPref" (booleano vero/falso) non so come.CheckBoxPreference e dipendenza

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" /> 

risposta

30

Aggiungi

android:dependency="checkboxPref" 

Per il ListPreference XML

Risultato:

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