Vijay
Vijay

Reputation: 61

How to change the title of the Tab Dynamically

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.

Upvotes: 6

Views: 10772

Answers (3)

anon
anon

Reputation: 71

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

Upvotes: 7

douarbou
douarbou

Reputation: 2283

You should not use anymore "TabHost" for ICS, it has been deprecated in version 13. instead you need to you "ActionBar"...

Tab mTab = super.getSupportActionBar().getTabAt(0); 
mTab.setText("new Title");

Android will refresh the tab right away

Upvotes: 0

CommonsWare
CommonsWare

Reputation: 1006869

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.

Upvotes: 3

Related Questions