我的应用程序需要动态更新选项卡指示器,我试图通过调用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");
答案 0 :(得分:13)
我为之前的错误答案道歉,现已删除。
尝试在TabWidget
上使用getChildViewAt()
。
答案 1 :(得分:7)
我使用getChildTabViewAt(tabId)
而不是childviewAt(id)
来管理多个标签。
答案 2 :(得分:1)
试试这个:
TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);