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


}

各タップには独自のアクティビティがあります。さて、私の問題ですが、ボタンで次のタップアクティビティに切り替えるにはどうすればよいですか? アクティビティだけを開始しようとしましたが、タップ コントロールがありませんでした。

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 に答える