2010-05-18 2 views
3

본인은 응용 프로그램의 언어와 테마를 변경할 수있는 환경 설정 활동이 있습니다. 거기에서 뒤로 키를 통해 이전 활동으로 돌아가고 활동을 다시 만들고 싶습니다.onSaveInstanceState에서보기의 "활성화"를 저장해야합니까?

레이아웃을 onResume에 다시 초기화하고 거기에서 onRestoreInstanceState을 호출하여 처리 할 수있었습니다. 모든 뷰가 제대로 복원되고, 필요한 경우 체크 박스가 선택되며, 편집 텍스트는 이전에 거기에 남아있는 텍스트로 채워집니다.

하지만 처음에는 비활성화 된 버튼이 있으며 라디오 버튼을 선택한 경우에만 활성화됩니다. 문제는 다음과 같습니다. 라디오 버튼을 선택하면 버튼이 활성화됩니다. 그런 다음 설정으로 이동하여 테마를 변경하고 첫 번째 활동으로 돌아갑니다. 도착하면 라디오 버튼이 선택 상태로 복원되지만 버튼은 사용할 수 없습니다.

그래서 활성화/비활성화 상태가 번들에 저장되지 않고 반 직관적으로 보입니다. 그리고 나는 이것을하는 안드로이드 소스에 어떤 코드도 발견하지 못했습니다. 뭔가 빠졌는가, 아니면 내 코드를 써야 하나?

편집 : BTW 상태는 ID가있는보기에만 저장됩니다. 그 버튼에는 하나만 있습니다. :)

답변

0

여기서 핵심은 실제로 버튼을 활성화하고 응용 프로그램에 대한 모든 액세스에서 일관성이 있는지 확인하는 것입니다. 명세서에서

:

그러나 나는 또한 처음에 사용할 수 있으며, 라디오 버튼이 선택되어있는 경우에만 유효하게되는 버튼이 있습니다.

버튼을 활성화하는 라디오 버튼에 리스너가있는 것으로 보입니다. 이 버튼을 누르면 처음에는 버튼이 비활성화되어 활동을 실행할 때마다 버튼을 변경해야한다는 것을 알 수 있습니다.

  • 이 라디오 버튼은 라디오 버튼이 선택되어 필요한
  • 가 (전역 설정을 변경하는 경우 버튼을 가능하게 onResume에 체크 글로벌 환경의 일종을 설정 한 다음과 같이

    귀하의 옵션

    은 또는 아마도 GUI 설정)을 버튼이 활성화 된 것으로 설정하십시오. 라디오 버튼이 다시 선택 해제 될 때까지 영원히 머무를 수 있습니다.
  • 당신은 당신이 유스 케이스의 컨텍스트를 언급하지 않았기 때문에 가장 적합한 어떤 얘기하기가 어렵

을 언급로 onSaveInstanceState에서 enabledness 저장,하지만 난 번들하지 않는 한 그것을 통해 전송 피할 것 그것은 매우 가끔 사용되는 활동입니다. 추후 통지가있을 때까지 라디오 버튼 설정을 저장하거나보기를 변경하여 라디오 버튼 설정을 추적하는 것이 좋습니다.

0

가장 쉬운 방법은 라디오 버튼을 선택하면 onResume에서 버튼을 활성화하는 것입니다.

편집 : PreferenceGroup은 조회수 간의 종속성을 처리 할 수 ​​있지만, PreferenceActivity의 서브 클래스로 활동을 필요로한다.

+0

물론 이죠. 비슷한 행동으로 많은 활동을하고 있습니다. 나는 모든 해결책을 갖고 싶습니다. 아이디어가 떠오르면 보도록하겠습니다. –

관련 문제