0

正如我所说,我的程序上有一个 tabView,我想通过活动传递一些数据。当我尝试 startActivity 时,标签消失了。所以我想而不是尝试startActivity。我想更改标签。

我有 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

您无需调用startActivity即可在选项卡之间切换,TabHost 会为您处理。至于在选项卡之间传递数据,您是否考虑过将数据存储在 tabActivity 中?getParent()在您的情况下,您可以通过使用并将其转换为您的类从您的选项卡(子项)中获取对它的引用,(Start) 如下所示:

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

现在您可以访问您在 tabActivity 中创建的数据和方法。

于 2011-10-14T10:34:30.653 回答
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 回答