2011-12-09 59 views
1

我使用tabhost作爲我的主要活動。 並在第一個列表中顯示。 然後點擊第二個列表。 此時,屏幕方向改變,屏幕變爲初始列表。 如何解決它? 我已經嘗試如下: 1.添加機器人:configChanges = 「方向| keyboardHidden」 機器人:screenOrientation = 「肖像」,在清單 2.加入每個活動tabhost在屏幕方向更改時重新加載

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

onConfigurationChanged是否有任何其他的解決辦法?

對不起〜 我指的是tabcontent(FrameLayout)中的內容。 當屏幕更改時,選項卡(TabWidget)未重新加載。

在創建時,調用AActivity以顯示list1。 然後在AActivity listonclick中,我使它調用BActivity來顯示list2。 但是當屏幕更改時,tabcontent會調用AActivity並顯示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活動中的「初始列表」。

相關問題