안녕하세요. 매일 구경만 하다가 오늘은 아무리 찾아도 없는거 같아 질문을 올립니다.
보통 PreferenceCategory는 화면에서 Category 타이틀 및 그룹 관리를 하는 넘으로써
화면에서 없애야 할 일이 거의 없는데요.
그래서 코드를 뒤져봐도 PreferenceCategory를 나타냈다 없앴다하는 코드가 안 보이네요.
일단 알고 싶은 것은 PreferenceCategory를 화면에서 없앴다, 나타냈다 하는 방법을 알고 싶습니다.
크게 두가지 알고리즘을 생각 중인데요.
1. API에서 setVisibility와 같은 함수를 찾아서 PreferenceCategory를 안보이고 보이게 함 (하지만, 그런 함수나 방법이 존재하지 않는거 같네요. ㅜ.ㅜ)
참고로 PreferenceCategory는 android.preference.PreferenceGroup의 상속을 받아서
removeAll() , removePreference(Preference)등과 같은 함수를 가지게 되는데요. 이 함수는 PreferenceCategory의 밑에 달리게 되는
그룹내의 리스트 객체를 지우는 것이고 정작 PreferenceCategory는 삭제가 되질 않는 군요.
2. PreferenceActivity를 onCreate를 다시 호출해서 경우에 따라 서로 다른 layout을 불리게 함(PreferenceCategory가 포함된 layout과 포함되지 않은 layout)
이것도, onCreate를 어떻게 다시 시작할지 난감하기만 하네요.
위에서 말씀 드렸다시피 setVisibility같은 함수를 PreferenceCategory에서는 지원하지 않는 군요.
일단 되는지 안 되는지가 궁금합니다. ㅜ.ㅜ 안된다면 안된다고 하면 될텐데, 그거 증명하는게 힘드네요...
그럼 고수님들 답변 기다리겠습니다.
위와 같은 방법은 Activity를 다시 열거나 onCreate가 불려야하는데, 현재 제 상황은
intent가 날라오면 그 이벤트에 맞추어 표시해줘야 해서요. ㅜ.ㅜ
결국 제가 제시한 2번째 경우에 해당하는 경우인데, 이벤트를 받은 상황에서 onCreate가 다시 불리게 하는 방법을 모르겠네요.
즉, 이벤트 받은 상황에서 Activity전체를 Refresh할 방법을 잘 모르겠습니다.
그냥 함수안에서 onCreate를 불러도 되는건지.. ㅜ.ㅜ
좋은 방법을 아시면 부탁 드릴께요.. 제가 잘 몰라서 넘 당연할 걸 물어보는 건 아닌지^^; 그럼 부탁드릴께요.
와우~~!! zihen님 감사합니다.
잘 되네요^^
PreferenceCategory 한단계 위인 PreferenceScreen을 이용하면 되는 거였는데 전 그 밑단에서
어떻게 해보려고 허우적대고 있었네요.ㅜ.ㅜ
많이 배웠습니다. 감사합니다.
정리하자면, PreferenceScreen.removePreference(PreferenceCategory) 이런 형식으로 하면 되네요.
xml파일에서 Preference의 전체를 감싸고 있는 놈이 PreferenceScreen이란 사실을 이제야 깨달은 빠드 였습니다. ㅜ.ㅜ



