2015-02-04 6 views
0

나는 문제가있다. 설정 메뉴에서 나는 CheckboxPreference와 다른 Preference를 가지고있다. 그들은 같은 카테고리에 속해 있습니다. 나는 그것을 원한다 : 체크 박스가 체크되었을 때, Preference (아래에 있음)가 나타난다. 확인란을 선택하지 않으면 환경 설정이 사라집니다. 나는 그것을하는 가장 좋은 방법이 무엇인지 모른다. 그래서이 방법을 시도 : - 먼저 떨어져 : PreferenceCategory를 찾으십시오. - 환경 설정을 숨기려면 범주에서 제거하십시오. - 환경 설정을 표시하려면 카테고리에 추가하십시오.카테고리에서 환경 설정을 표시하고 숨기는 방법은 무엇입니까?

제거 후에는 환경 설정이 즉시 사라집니다. 그러나 아무것도 추가하지 않으면 아무 것도 나타나지 않습니다. 아무도 나를 도울 수 있습니까?

먼저 당신이 당신의 CheckBoxPreference를 찾아하여 onResume의 다른 기본 설정 : 당신이 PreferenceFragment 사용하는 가정

+0

일부 코드를 표시하십시오. – Opiatefuchs

답변

0

CheckBoxPreference cb = (CheckBoxPreference) findPreference('CHECKBOX_PREF_KEY'); 
OtherPreference otherPref = (OtherPreference) findPreference('OTHER_PREF_KEY'); 

지금 당신은 다른 사람을 활성화/비활성화 다음 cbOnPreferenceChangeListener 및 설정 청취자를 기준으로 :

if (!cb.isChecked()) { 
    if (otherPref != null){ 
     getPreferenceScreen().removePreference(otherPref); 
    } 
} else { 
    if (otherPref == null) { 
     otherPref = new OtherPref(); 
     otherPref.inti... 
     getPreferenceScreen().addPreference(otherPref); 
    } 
}