0

我在 StartActivity 中有以下 TapControl:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    TabHost tabHost = getTabHost();

    // Tab for A Tap
    TabSpec atapspec = tabHost.newTabSpec("ATap");
    // setting Title and Icon for the Tab
    atapespec.setIndicator("ATap", getResources().getDrawable(R.drawable.state_atap));
    Intent atapIntent = new Intent(this, ATapActivity.class);
    atapspec.setContent(atapIntent);

    // Tab for B Tap
    TabSpec btapspec = tabHost.newTabSpec("BTap");
    btapspec.setIndicator("BTap", getResources().getDrawable(R.drawable.state_btap));
    Intent btapIntent = new Intent(this, BtapActivity.class);
    btapspec.setContent(btapIntent);



    // Adding all TabSpec to TabHost
    tabHost.addTab(atapspec); // Adding a tab
    tabHost.addTab(btapspec); // Adding b tab


}

每个 Tap 都有自己的 Activity。现在我的问题是,如何使用按钮切换到下一个 Tap-Activity?我试图仅启动 Activity,但随后缺少 Tap-control。

startActivity(new Intent(this, BTapActivity.class));

我发现它应该是这样的:

setCurrentTabByTag("BTab");

但我不知道怎么做。

编辑:

当我输入“tabHost.setCurrentTabByTag("BTap");” 在 onCreate 方法的最后,选择了 BTap。因此它是正确的命令。但是从另一个活动中,我无法访问 tabHost。当我将 tabHost 设置为全局对象时,应用程序崩溃:

TabHost tabHost = getTabHost();

我从 Tab-Activity 中尝试过这样的:

startActivity StartAct = new startActivity ();
StartAct.setTap("BTap");

此方法在 StartActivity 中:

public void setTap(String tap) {

    tabHost.setCurrentTabByTag(tap);
}

我能做些什么?对不起,我是初学者...

4

1 回答 1

0

您可以使用 TabHost 的setCurrentTab(int index)功能以编程方式打开选项卡。

于 2012-05-12T15:29:28.073 回答