0

onConfigurationChanged 및 TabHost에 문제가 있습니다. 회전에 내 활동을 다시 시작, 나는이 매우 도움이 게시물을 발견하기 때문에 는 : 함수 밖으로 Activity restart on rotation AndroidonConfigurationChanged를 사용하여 회전시 TabHost 비어 있음

I 종류의 GUI 요소를 InitialGui는()

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    InitialGui(); 
} 

오버라이드의 onConfigurationChanged 및 InitialGui()를

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.main); 
    InitialGui(); 
} 
전화

AndroidManifest 내부

<activity 
     android:label="@string/app_name" 
     android:name=".MyAndroidAppActivity" 
     android:theme="@android:style/Theme.NoTitleBar" 
     android:configChanges="keyboardHidden|orientation" 
     > 

간단히하기 위해 언급 된 변경 사항 만있는 http://www.mkyong.com/android/android-tablayout-example/ 을 기반으로 새 프로젝트를 만듭니다. 이것은 BTW

public void InitialGui() 
{ 
    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 
    tabHost.setup(); 

    // Android tab 
    Intent intentAndroid = new Intent().setClass(this, AndroidActivity.class); 
    TabSpec tabSpecAndroid = tabHost 
     .newTabSpec("Android") 
     .setIndicator("Android") 
     .setContent(intentAndroid); 

    // Apple tab 
    Intent intentApple = new Intent().setClass(this, AppleActivity.class); 
    TabSpec tabSpecApple = tabHost 
     .newTabSpec("Apple") 
     .setIndicator("Apple") 
     .setContent(intentApple); 

    // Windows tab 
    Intent intentWindows = new Intent().setClass(this, WindowsActivity.class); 
    TabSpec tabSpecWindows = tabHost 
     .newTabSpec("Windows") 
     .setIndicator("Windows") 
     .setContent(intentWindows); 

    // Blackberry tab 
    Intent intentBerry = new Intent().setClass(this, BlackBerryActivity.class); 
    TabSpec tabSpecBerry = tabHost 
     .newTabSpec("Berry") 
     .setIndicator("Berry") 
     .setContent(intentBerry); 

    // add all tabs 
    tabHost.addTab(tabSpecAndroid); 
    tabHost.addTab(tabSpecApple); 
    tabHost.addTab(tabSpecWindows); 
    tabHost.addTab(tabSpecBerry); 

    //set Windows tab as default (zero based) 
    tabHost.setCurrentTab(2); 
} 

내 문제가 회전 후 빈 TabHosts있는 InitialGui 기능입니다 나던 문제 마녀 탭을 클릭 할 때 아무것도 표시되지 않습니다. 어떤 힌트? 감사합니다

+0

사용자가 탭에 인 텐트를 사용 중이며 현재 활동에없는 인 텐트를 사용하여 시작된 활동) 데이터가 반환되는 객체에 저장되지 않고 (탭 호스트 활동 데이터 만 포함) –

+0

이러한 의도를 처음으로 시작 하시겠습니까? 더 많은 코드가 없습니다. 비슷한 것 \t 의도 i = 새로운 의도 (this, cls); \t startActivity (i); 모든 스레드 다시 다시 시작 – JaMaBing

답변

0

나는 복잡하다고 생각 했으므로 컨텐트 뷰 (R.layout.myLayout)를 설정할 필요가 없습니다. 또는 다른 것. onConfigurationChanged를 오버라이드하여 onCreate 메소드의 호출을 막기 만하면됩니다.

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
} 

이 작품은 나를 위해 작동합니다.

관련 문제