2016-09-20 2 views
-1

중첩 된 PreferenceScreen 내부에있는 사용자 정의 기본 설정에 대한 이벤트 수신기를 설정해야합니다.중첩 된 기본 설정 화면이 감지되었습니다.

내 맞춤 환경 설정은 CheckBoxPreferences 묶음을 자동으로 선택/선택 취소하는 특별한 체크 박스입니다. 그러나 PreferenceScreen이 클릭되어 표시되기 전에 이벤트 수신기를 설정하려고하면 체크 박스에 대한 참조를 얻을 수 없습니다. 내 클릭 수신기를 설정하고 싶습니다.

중첩 된 환경 설정 화면이 표시된 경우에만 작동하는 메소드를 찾을 수 없습니다. .getDialog()를 수행하고 리스너와 함께 재생하려고 시도했지만 중첩 된 PreferenceScreen이 실제로 표시 될 때까지 다시 null 참조가 나타납니다.

+0

왜 .xml 파일을 게시하지 않습니까? – greenapps

답변

0

모든 환경 설정 값을 얻으려면 getDefaultSharedPreferences()를 호출하십시오. 콜백이 필요하지 않습니다. 체크 상자에 설정된 값을로드하기 만하면됩니다.

+0

값이 필요 없으며 UI 콜백을 설정하고 상호 작용할 때 다른 설정을 자동으로 변경해야했습니다. 나는 화면이 새로 고쳐 졌을 때 정확히 알 필요가없는 일을 발견했다. – Gubatron

0

내가 발견 한 해결책은 내부 구성 요소가 비정상적으로 설정된 후 (protected View onCreateView(ViewGroup parent) 메서드에서) 사용자 설정 환경 설정의 소스 수신기에서 UI 수신기를 정의하는 것이 었습니다. 참조를 기다리기에는 너무 이르므로 내포 된 환경 설정 화면이로드되었을 때이를 감지 할 수있는 방법을 찾지 못했습니다.

관련 문제