2012-12-31 13 views
7

Mam pole wyboru i ListPreference, chciałbym wyłączyć/włączyć ListPreference przez pole wyboru. Dużo czytam i znalazłem możliwe tylko przy użyciu java (a nie przez xml). Czy to jest poprawne? Teraz po przeczytaniu wartości "checkboxPref" (boolean true/false) nie wiem jak to zrobić.CheckBoxPreference and dependency

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

Odpowiedz

30

Dodaj

android:dependency="checkboxPref" 

Do XML ListPreference

Wynik:

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