我的应用程序中有三个选项卡。在一个选项卡下的事件中,我想更改另一个现有选项卡的标题。这是我们在向TabHost添加选项卡时提供的标题。
例如:TabHost.addTab(tabHost.newTabSpec(“Tab2”))。setIndicator(“我需要动态更改”).setContent ....
在上面的例子中,我在setIndicator()下提供的tab2的标题应该动态更改。
有没有办法实现这一目标。
答案 0 :(得分:7)
除非您能找到更干净的方法,否则您可以访问TabWidget
本身。
TabWidget
中包含的是每个标签的相对布局,每个标签都包含ImageView
和TextView
。要在索引0处的选项卡中直接访问textview,您可以执行以下操作:
mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title);
然后只是投射为TextView
,您可以根据需要进行编辑。以下对我有用:
((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New");
答案 1 :(得分:3)
不要将指标设置为String
,而是使用您设置View
的地方。然后,您可以保留View
(例如,TextView
)并根据需要更改其内容。
答案 2 :(得分:0)
您不应再对ICS使用“TabHost”,它已在版本13中弃用,而您需要“ActionBar”......
Tab mTab = super.getSupportActionBar().getTabAt(0);
mTab.setText("new Title");
Android会立即刷新标签