0
我有一個Android偏好設置屏幕,其中一些偏好是相互依賴的。具有相互依賴項的Android偏好屏幕
換句話說,如果其中一個偏好設置爲某個值,則其他兩個可用。如果不是,那麼他們並不是因爲它們毫無意義。
具體來說,我有一個選項有3個可能的值:提示,是和否 當值設置爲否時,我想鎖定其他2個選項。
如何在Android 2.1中執行此操作?
我有一個Android偏好設置屏幕,其中一些偏好是相互依賴的。具有相互依賴項的Android偏好屏幕
換句話說,如果其中一個偏好設置爲某個值,則其他兩個可用。如果不是,那麼他們並不是因爲它們毫無意義。
具體來說,我有一個選項有3個可能的值:提示,是和否 當值設置爲否時,我想鎖定其他2個選項。
如何在Android 2.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;
}
});
注:原來在兩個小時前提出的問題是不正確的。在討論一個現在被刪除的答案時,OP已經指出,「基本」偏好不是「複選框」,而是其他(大概是一個ListPreference),帶有「3種可能的狀態」(提示,從不),並且當底座設置爲「從不」時需要禁用從屬首選項。 – CommonsWare
我的錯誤。對於那個很抱歉。編輯糾正我的錯誤。 – theblitz