0

我有类 CustomTab 扩展 TabActivity:

protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_tab);

tabHost = getTabHost();

Intent intentA = new Intent(getBaseContext(), A.class);
Intent intentB = new Intent(getBaseContext(), B.class);
Intent intentC = new Intent(getBaseContext(), C.class);

TabSpec tabA = tabHost
        .newTabSpec("a")
        .setIndicator("",
                getResources().getDrawable(R.drawable.icon_a))
        .setContent(intentA);
TabSpec tabB = tabHost
        .newTabSpec("b")
        .setIndicator(
                "",
                getResources()
                        .getDrawable(R.drawable.icon_b))
        .setContent(intentB);
TabSpec tabC = tabHost
        .newTabSpec("c")
        .setIndicator("",
                getResources().getDrawable(R.drawable.icon_c))
        .setContent(intentC);


tabHost.addTab(tabA);
tabHost.addTab(tabB);
tabHost.addTab(tabC);
tabHost.setCurrentTab(0);

和活动 B:

Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.b);

((CustomTab) getParent()).getTabHost().setCurrentTab(3);

我想在运行活动 B 时切换到选项卡 3(活动 C)所以我尝试使用“((CustomTab)getParent()).getTabHost().setCurrentTab(3);” 它只改变标签,但内容没有改变,我创建了一个类似但没有收到正确答案的主题。

4

1 回答 1

1

我再次调用 TabActivity 来管理这些东西。

TabActivity

int tabNumber = getIntent().getExtras().getInt("tabNumber");
tabHost.setCurrentTab(tabNumber);

并像这样在子 Activity 中调用 TabActivity,就像您的 Activity B 一样,

Intent intent = new Intent(BActivity.this,
                            CustomTab.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.putExtra("tabNumber",3);
                    startActivity(intent);

不要为此没有正确的解决方案。但我没有任何其他解决方案。所以,我用了这个。

于 2013-03-28T04:18:38.503 回答