2011-11-23 2 views
0

Orientation 장치가 변경되면 어떻게 내 탭의 상태를 저장할 수 있습니까? 나는 장치의 Orientation는 사용자가 만든 모든 탭을 지 웁니다 변경 모든 현재 열려있는 탭Android에서 방향 처리

ArrayList<TabHost.TabSpec> mTabList = new ArrayList<TabHost.TabSpec>(); 

을 유지하는 ArrayList 있습니다.

나는 savedInstanceState으로 할 것이지만, 그게 가능하다면 나는 묶는 법을 모른다.

의견을 보내주십시오.

+0

구성이 변경되면 활동 재 작성을 건너 뛸 수 있습니다. –

답변

1

해당 목록이 포함 된 활동의 목록에 configChanges 속성을 추가하십시오. 속성의 값은 "orientation"으로 설정하십시오. 이렇게하면 활동을 다시 시작하는 기본 동작이 중지되므로 목록이 지워집니다.

+0

ok ... 나는 onConfigurationChanged를 호출했지만 계속 onCreate ... o_O를 호출하여 탭이 재설정되도록 추가했습니다 ... – bwoogie

+0

TabActivity가 확장되면서 영향을 미치지 않습니다 ... 그렇지 않습니까? -edit- 가로 모드 (세로 방향)로 전환 할 때 onConfigurationChanged를 호출하지 않습니다. 나는 틀린 일을해야만한다. ... – bwoogie

+1

나는 방향을 바꿀 때마다 이것을 얻고있다 ... 11-22 22 : 00 : 55.503 : PhoneWindow (1051) : 이전에 초점을 맞춘 뷰는 저장 중에 id 2131230728를보고했다. 복원 중에는 찾을 수 없습니다. – bwoogie

0

귀하의 요구 사항을 참조, 변경 지향의 기본 동작을 중지하지 않고 오리엔테이션에서 응용 프로그램의 상태를 저장하는 경우 Reference

당신이 ... savedInstanceState.putParcelableArrayList (키, 값)를 사용할 수 있습니다이 이

전체 아이디어는 것 당신이 방향 변경에 resoures를 다시로드 할 것인지에 달려 있습니다. 가로 및 세로 모드에 다른 레이아웃 리소스를 사용하는 경우를 말합니다. android : configChanges = "orientation"을 사용하는 다른 방법을 사용하는 것이 더 좋습니다.

+0

을 포함해야합니다.하지만 "savedStateInstance.putArrayList "이 없습니다. – bwoogie

+0

savedInstanceState.putParcelableArrayList (key, value)를 사용해보십시오. . –

1

Hey Buddy는 매니페스트 파일

<activity android:name="YourActivityName" android:configChanges="orientation|keyboardHidden"></activity> 

위의 솔루션이 경우에 당신을 위해 작동하지 않는 경우 다음이 작동

Saving Android Activity state using Save Instance State

희망을 사용할 수 있습니다

android:configChanges="orientation|keyboardHidden" 

그냥 마음에 계속 ...