1

我有 2 个选项卡,例如屏幕上显示的 Tab1 和 Tab2。让选项卡显示在纵向方向上。

Tab1 显示 Activity1,Tab2 显示 Activity2。

目前,选中的选项卡状态为Tab2。现在,我将 PORTRAIT 的方向更改为 LANDSCAPE。将方向更改为 LANDSCAPE 模式时,当前显示的是 Tab1,而不是显示 Tab2。

我的代码:

public class TabBarExample extends TabActivity {

    TabHost tabHost;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab);

        /* TabHost will have Tabs */
        tabHost= (TabHost)findViewById(android.R.id.tabhost);

        TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
        TabSpec secondTabSpec = tabHost.newTabSpec("tid1");


        firstTabSpec.setIndicator("First Tab Name").setContent(new Intent(this,FirstTab.class));
        secondTabSpec.setIndicator("Second Tab Name").setContent(new Intent(this,SecondTab.class));


        tabHost.addTab(firstTabSpec);
        tabHost.addTab(secondTabSpec);



        tabHost.getTabWidget().getChildAt(0).getLayoutParams().height =40;
        tabHost.getTabWidget().getChildAt(1).getLayoutParams().height =40;

        for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)  
        {  
            tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));  
        }  

        Integer lastTab = (Integer) getLastNonConfigurationInstance();
        if(lastTab != null) {
           tabHost.setCurrentTab(lastTab);
        } 
        tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#C35817"));  
    } 
    public void onTabChanged(String tabId) {  
        // TODO Auto-generated method stub  
        for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)  
        {  
            tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));  
        }  

        tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#C35817"));  


    }
    public Object onRetainNonConfigurationInstance() {
        return tabHost.getCurrentTab();
    }

}
4

1 回答 1

4

检查这个答案

你必须玩SaveInstanceStateRestoreInstanceState

请参阅此示例

了解更多 阅读此

于 2012-08-02T10:43:40.940 回答