2012-08-11 3 views
1

내 앱의 주요 활동에는 세 개의 탭이 있습니다.이 탭을 클릭하면 활동의 contentView가 다른 레이아웃으로 전환됩니다. 내 문제는 방향이 바뀌면 첫 번째 탭이 자동으로 선택되고 첫 번째 레이아웃이로드된다는 것입니다.오리 엔테이션 변경에 마지막 탭을 유지하지만 앱 시작시

이 문제를 해결하는 방법에 대한 첫 번째 생각은 탭 위치를 savedInstanceState 또는 sharedPrefs 파일에 저장하는 것이지만 이러한 솔루션 중 하나의 문제는 앱을 처음 열 때 발생하며 OnCreate()가 호출됩니다.

것은, 나는 일이 다음 원하는 명확하게하려면

앱 부하에
  • (신선한 활동,에서 onCreate()가 호출이) - 앱 이력서에 항상
  • 첫 번째 탭 로드 (응용 프로그램이 일시 정지 한 후, Onresume는()가 호출) (변경 후, 한 OnCreate()가 호출 방향 변경에 탭
  • 을 마지막으로 연 -로드) -로드 마지막 나는 구별 할 수있는 방법을 찾기 위해 노력하고 탭
  • 기본적으로

을 열어 오리엔테이션 변경 (마녀가 OnDestroy() 및 onCreate())을 호출하고 onCreate() 및 onDestory()를 시작합니다.

가능한 경우, 다른 매니지먼트의 configChanges = "orientation"라인이 아니라 다른 스 크린 크기와 밀도 등을 처리 할 때 문제가 발생할 수 있다고 들었 기 때문에 직접 스위치를 처리하십시오.

이 작업을 수행 할 수있는 방법이 있습니까? 아니면 다른 동작을 처리해야합니까?

답변

2

onSaveInstanceState은 올바른 방법입니다. 이 아니며, 작업이 끝난 후에도 계속됩니다. "배경 상태가 될 때"또는 방향 변경을 수행 할 때만 지속됩니다.

+0

오, 나는 오리엔테이션이 바뀌면 호출되지 않을 것이라고 생각했습니다. 나는 그것을 지금 시도 할 것이다. 감사. – TheMasster12

+0

이것은 완벽하게 감사했습니다! – TheMasster12