在android中切换选项卡,但内容不会改变

时间:2013-03-28 02:48:37

标签: android android-layout android-intent android-emulator android-widget

我有类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);”它只改变标签,但内容没有改变,我创建了一个类似但没有得到正确答案的主题。

1 个答案:

答案 0 :(得分: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);

对此没有正确的解决方案。但我没有得到任何其他解决方案。 所以,我用过这个。