0

私が言うように、プログラムに tabView があり、アクティビティを通じてデータを渡したいと思います。startActivity を試すと、タブが消えます。だから私はstartActivityを試す代わりに欲しい。タブを変更したい。

タブごとに1つずつ、タブビューを保持するために1つずつ、3つのアクティビティがあります。

public class Start extends TabActivity {
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start);

Resources res = getResources(); // Resource object to get Drawables
tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Reusable TabSpec for each tab
Intent intent;  // Reusable Intent for each tab

intent = new Intent().setClass(this, Home.class);
spec = tabHost.newTabSpec("Home").setIndicator("Home",
                  res.getDrawable(R.drawable.ic_tab_main))
              .setContent(intent);
tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, History.class);
spec = tabHost.newTabSpec("History").setIndicator("History",
                  res.getDrawable(R.drawable.ic_tab_history))
              .setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, Settings.class);
spec = tabHost.newTabSpec("Settings").setIndicator("Settings",
                  res.getDrawable(R.drawable.ic_tab_settings))
              .setContent(intent);
tabHost.addTab(spec);

tabHost.setCurrentTab(0);

それがタブを追加する方法であり、他のアクティビティからタブを変更する方法がわかりません。私はこれを試しました:

  Start tab;
  tab.tabHost.setCurrentTab(0);

しかし、私はエラーが発生しました.... :/

4

2 に答える 2

0

ActivityGroup クラスを確認してください。

http://developer.android.com/reference/android/app/ActivityGroup.html

そして、ここにそれが実際に示されています:

http://united-coders.com/nico-heid/use-android-activitygroup-within-tabhost-to-show-different-activity

于 2011-10-14T10:05:29.437 に答える
0

タブを切り替えるために呼び出す必要はありませんstartActivity。TabHost がそれを処理します。タブ間のデータの受け渡しに関して、データを tabActivity に格納することを検討しましたか? getParent()あなたのケースでは、それを使用してクラスにキャストすることで、タブ(子)からそれへの参照を取得できます(Start)

Start parentActivity;
parentActivity = (Start) getParent();

これで、tabActivity で作成したデータとメソッドにアクセスできるようになりました。

于 2011-10-14T10:34:30.653 に答える