我在屏幕底部有一个带有 2 个选项卡的屏幕。运行应用程序后,第一个选项卡将自动处于活动状态,并且将显示与该屏幕相关的活动(屏幕 1)。然后,当用户单击第二个选项卡时,它会打开另一个活动(屏幕 2)。
要求:我想在应用加载时显示屏幕 0 而不是显示屏幕 1。此时两个选项卡都应该处于非活动状态(未按下)。用户单击任何选项卡后,仅应打开相应的屏幕(屏幕 1 和屏幕 2)。
怎么做?
我使用的代码如下:
public class TabBarActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
// Your Tab Titles
String tab_title[] = { "Screen 1", "Screen 2"};
// Your Tab Drawables for their states
int tab_drawables[] = { R.drawable.tab_home_custom,
R.drawable.tab_balance_custom};
// Your Tab Activities
Object tab_act[] = { TabB.class,TabC.class};
// / TabHost setup
final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
TabSpec tab_spec ;
for (int i = 0; i < tab_act.length; i++) {
tab_spec = tabHost.newTabSpec(tab_title[i]);
tab_spec.setIndicator(tab_title[i],
getResources().getDrawable(tab_drawables[i]));
tab_spec.setContent(new Intent(this, (Class<?>) tab_act[i]));
tabHost.addTab(tab_spec);
}
tabHost.setCurrentTab(0);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
TabBarActivity.this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}