CheckBoxPreference 'A'를 선택하면 다른 기본 설정 ('B')이 A 아래에 표시됩니다. 'A ', 환경 설정'B '는 숨 깁니다 ...Android : 다른 CheckBoxPreference를 확인/선택 취소 할 때 환경 설정을 표시/숨기기
따라서 일반적으로 의존성과 마찬가지로 작동하지만 환경 설정 B를 활성화/비활성화 할 수는 없지만 숨길 수 있습니다. 이 내가 생각 해낸 것입니다
: PREFA 및 prefB이 PreferenceFragment 클래스 필드로 이전에 정의 된
prefA = (CheckBoxPreference)findPreference("preference_A");
prefA.setChecked(false);
prefB = findPreference("preference_B");
category.removePreference(prefB);
prefA.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean switchedOn = (Boolean)newValue;
if (switchedOn)
{
Log.d("pref_test", "prefA checked");
category.addPreference(prefB);
}
else
{
Log.d("pref_test", "prefA UNchecked");
prefB = findPreference("preference_B");
category.removePreference(prefB);
}
return switchedOn;
}
});
.
prefA checked
prefA UNchecked
prefA UNchecked
는 (분명히 .removePreference (prefB) 메소드 반환 널의 결과로) 선택을 취소 두 번 onPreferenceChangeListener 전화처럼 :
문제
은 단지 2 개 클릭이 잘 작동하고 내 로그 말하는 것입니다.문제를 해결하는 방법에 대한 아이디어가 있으십니까?
사실 대신 switchedOn – cYrixmorten