2011-09-07 39 views
0

我有一個Android偏好設置屏幕,其中一些偏好是相互依賴的。具有相互依賴項的Android偏好屏幕

換句話說,如果其中一個偏好設置爲某個值,則其他兩個可用。如果不是,那麼他們並不是因爲它們毫無意義。

具體來說,我有一個選項有3個可能的值:提示,是和否 當值設置爲否時,我想鎖定其他2個選項。

如何在Android 2.1中執行此操作?

+0

注:原來在兩個小時前提出的問題是不正確的。在討論一個現在被刪除的答案時,OP已經指出,「基本」偏好不是「複選框」,而是其他(大概是一個ListPreference),帶有「3種可能的狀態」(提示,從不),並且當底座設置爲「從不」時需要禁用從屬首選項。 – CommonsWare

+0

我的錯誤。對於那個很抱歉。編輯糾正我的錯誤。 – theblitz

回答

1

基本上只需調用setEnabled()就可以在OnPreferenceChangeListener中啓用/禁用3偏好設置。例如:

otherPrefOne = (ListPreference)findPreference("OTHER_PREF_1"); 
otherPrefTwo = (ListPreference)findPreference("OTHER_PREF_2"); 

ThreeWayPref = (ListPreference)findPreference("3WAY_PREF"); 
ThreeWayPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 
    public boolean onPreferenceChange(Preference preference, Object newValue) { 
     if (((String)newValue).equals("No")) { 
      otherPrefOne.setEnabled(false); 
      otherPrefTwo.setEnabled(false); 
     } else { 
      otherPrefOne.setEnabled(true); 
      otherPrefTwo.setEnabled(true); 
     } 
     return true; 
    } 
});