2010-05-29 41 views
13

我的应用程序需要动态更新选项卡指示器,我试图通过调用TabSpec.setIndicator()来做到这一点,但它不起作用。这里是我的代码:在Android中动态修改选项卡指示器

在TabActivity的onCreate方法:

tabHost = getTabHost(); 
TabSpec tabSpec = tabHost.newTabSpec("abc"); 
tabSpec.setIndicator("helloabc"); 
tabSpec.setContent(new MyViewFactory()); 
tabHost.addTab(tabSpec); 

现在我需要标签指示更改为另一个字符串,例如, “XYZ”

TabSpec tabSpec = MyTabActivity.getTabSpec(); 
tabSpec.setIndicator("xyz"); 

但它不”工作。所以我想知道如何更改选项卡指示器后,它被添加到tabhost?非常感谢。

解决方案

感谢@CommonsWare,我用TabWidget.getChildAt做到,这是我为您提供方便代码:

TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title) 
title.setText("xyz"); 
+0

我可以改变图像的指示这样? – keen 2014-02-26 06:52:22

回答

13

我为我刚才的不正确的答案道歉,现在删。

尝试使用getChildViewAt() on TabWidget

+0

我如何更改标签栏的图像指示器? – keen 2014-02-26 06:52:50

7

我与getChildTabViewAt(tabId) manjied而不是childviewAt(id)为多个选项卡。

1

试试这个:

TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title); 
相关问题