(android)更改选项卡而不是startActivity

时间:2011-10-14 10:00:55

标签: android tabs tabview

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

我有3个活动,每个选项卡一个,另一个活动用于保存tabview。

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);

但我收到了错误....:/

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您无需致电startActivity在标签之间切换,TabHost会为您处理。 至于在标签之间传递数据,您是否考虑过将数据存储在tabActivity中?您可以使用getParent()从您的标签(儿童)中获取对它的引用,然后将其投放到您的班级(Start) 像这样:

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

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