2011-12-09 11 views
1

私は主な活動としてtabhostを使用しています。 最初のリストを最初に表示します。 そして2番目のリストにonclickしてください。 このとき、画面の向きが変わり、初期リストに切り替わります。 解決方法 私はすでに以下試してください。 1.追加アンドロイドを:configChanges = "オリエンテーション| keyboardHidden" アンドロイド:screenOrientation = "ポートレート" をマニフェストに各アクティビティタブホストが画面の向きを変更している間にリロード

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

にonConfigurationChanged 2.アドオンを他のソリューションはありますか?

申し訳ありません〜 私はタブコンテンツのコンテンツ(FrameLayout)を意味します。 画面が変わったときにタブ(TabWidget)がリロードされませんでした。

作成時に、list1を表示するためにAActivityを呼び出します。 AActivityのlistonclickでは、list2を表示するためにBActivityを呼び出します。 しかし、画面が変わると、tabcontentはAActivityとshow list1を呼び出します。

+0

もう少し詳しくお尋ねください。 –

答えて

2

私が正しく理解している場合、どのタブが選択されているかを保存する必要があります。このようなものを試すことができます...

public class MyTabActivity extends TabActivity 
    implements TabHost.onTabChangeListener { 

    private int currentTab = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     ... 
     getTabHost().setOnTabChangedListener(this); 
    } 

    @Override 
    protected void onResume() { 
     ... 
     currentTab = getSharedPreferences("myapp", MODE_PRIVATE).getInt("currentTab", 0); 
     getTabHost().setCurrentTab(currentTab); 
    } 

    @Override 
    protected void onPause() { 
     ... 
     getSharedPreferences("myapp", MODE_PRIVATE).edit().putInt("currentTab", currentTab).commit(); 
    } 

    @Override 
    public void onTabChanged(String tabId) { 
     currentTab = getTabHost().getCurrentTab(); 
    } 
} 
1

onCreateは、画面の向きが変更されたときに再度アクティビティで呼び出されます。おそらく、あなたはonCreateアクティビティの「初期リスト」に設定しています。

関連する問題