2011-09-07 7 views
0

일부 환경 설정이 상호 의존적 인 Android 환경 설정 화면이 있습니다.상호 의존적 인 항목이있는 Android 환경 설정 화면

즉, 기본 설정 중 하나를 특정 값으로 설정하면 나머지 두 가지 설정을 사용할 수 있습니다. 그렇지 않으면 의미가 없기 때문이 아닙니다.

특히, 프롬프트, 예 및 아니오의 세 가지 값으로 옵션을 사용할 수 있습니다. 값을 아니요로 설정하면 다른 두 옵션을 잠급니다.

Android 2.1에서 어떻게하나요?

+0

참고 : 원래 2 시간 전에 제기 된 질문은 올바르지 않습니다. 지금 삭제 된 답변에 대한 토론에서 OP는 "기본"환경 설정이 "확인란"이 아닌 "가능한 3 가지 상태"(프롬프트, 항상, never), 기본 설정이 "never"로 설정된 경우 종속 기본 설정이 비활성화되기를 원합니다. – CommonsWare

+0

내 실수. 미안합니다. 내 실수를 바로 잡기 위해 편집 됨. – theblitz

답변

1

기본적으로 3 방향 기본 설정에 대해 OnPreferenceChangeListener에서 활성화/비활성화하려는 환경 설정에 setEnabled()을 호출하면됩니다. 예 :

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; 
    } 
});