1

画面に表示される Tab1 と Tab2 など、2 つのタブがあります。タブが縦方向に表示されるようにします。

Tab1 は Activity1 を表示し、Tab2 は Activity2 を表示します。

現在、選択されているタブの状態は Tab2 です。ここで、縦向きの向きを横向きに変更します。向きを横モードに変更すると、 Tab2 を表示する代わりに、現在 Tab1 が表示されます。

私のコード:

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

この回答を確認してください。

と で遊ぶ必要がSaveInstanceStateありRestoreInstanceStateます。

このを参照してください。

もっと知りたい これを読む

于 2012-08-02T10:43:40.940 に答える