画面に表示される 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();
}
}