2014-01-21 30 views
6

http://developer.android.com/reference/android/preference/Preference.html#attr_android:dependency使用邏輯不適用於Android:從喜好依賴

如果我想我的名單要依賴從名爲ON_OFF我能做到這一點

<ListPreference 
    android:defaultValue="100" 
    android:dependency="on_off" 
    android:dialogTitle="text" 
    android:entries="@array/display_values" 
    android:entryValues="@array/entry_values" 
    android:key="preferences_text" 
    android:summary="text" 
    android:title="text" /> 

,每次檢查其他偏好

當檢查偏好ON_OFF有值false這個列表首選項將被禁用。

但是如果我想要每次on_off爲true時,列表首選項被禁用? 我需要像android這樣的邏輯NOT:dependency

這是可能的嗎?

回答

15

在偏好XML,設置"on_off"CheckBoxPreferenceandroid:disableDependentsState屬性true。例如:

<CheckBoxPreference 
    android:disableDependentsState="true" 
    android:key="on_off" 
    android:summaryOff="Dependent is enabled" 
    android:summaryOn="Dependent is disabled" 
    android:title="Checkbox that disables its dependents state in reverse manner" /> 
0

您可以在代碼中實現它:

chb = (CheckBoxPreference) findPreference("chb"); 
list = (ListPreference) findPreference("list");  
chb.setOnPreferenceClickListener(new OnPreferenceClickListener() { 
     public boolean onPreferenceClick(Preference preference) { 
     list.setEnabled(!chb.isChecked()); 
     return false; 
     } 
    });