Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change the title of the Tab Dynamically

Tags:

android

I have three tabs in my Application. On an event under one Tab, i want to change the title of an another existing Tab. This is the title that we provide while adding the tabs to the TabHost.

Eg: TabHost.addTab(tabHost.newTabSpec("Tab2")).setIndicator("I need to be Changed dynamically").setContent....

In the above example, the title of the tab2 that i provided under setIndicator(), should be changed dynamically.

Is there any way to accomplish this.

like image 833
Vijay Avatar asked Feb 18 '10 19:02

Vijay


2 Answers

Unless you can find a cleaner method, you can access the TabWidget itself. Contained in the TabWidget are relative layouts for each of your tabs which each contain an ImageView and a TextView. To directly access the textview in the tab at index 0 you can do this:

mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title);

Then just cast as a TextView and you can edit it however you want. The below worked for me:

((TextView)mTabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title)).setText("New");
like image 176
anon Avatar answered Sep 22 '22 04:09

anon


Rather than setting the indicator as a String, use one where you set the View to be used. Then, you can hold onto that View (e.g., a TextView) and change its contents as needed.

like image 29
CommonsWare Avatar answered Sep 21 '22 04:09

CommonsWare