在Android中动态修改选项卡指示器

时间:2010-05-29 16:26:23

标签: android android-tabhost

我的应用程序需要动态更新选项卡指示器,我试图通过调用TabSpec.setIndicator()来执行此操作,但它不起作用。这是我的代码:

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

但它不起作用。所以我想知道在将tab指针添加到tabhost之后如何更改它?非常感谢。

解决方案

感谢@CommonsWare,我使用TabWidget.getChildAt制作它,这是我方便的代码:

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

3 个答案:

答案 0 :(得分:13)

我为之前的错误答案道歉,现已删除。

尝试在TabWidget上使用getChildViewAt()

答案 1 :(得分:7)

我使用getChildTabViewAt(tabId)而不是childviewAt(id)来管理多个标签。

答案 2 :(得分:1)

试试这个:

 TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);