13

我的应用程序需要动态更新选项卡指示器,我试图通过调用 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");

但它不起作用。所以我想知道标签指示器添加到标签主机后如何更改它?非常感谢。

解决方案

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

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

3 回答 3

13

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

尝试getChildViewAt()使用TabWidget.

于 2010-05-29T22:06:55.300 回答
7

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

于 2011-12-13T11:09:10.873 回答
0

试试这个:

 TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);
于 2013-08-30T05:21:34.670 回答