tags:

views:

132

answers:

3

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.

+1  A: 

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.

CommonsWare
A: 

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

anon
A: 

Thank you very much. I really appreciate your answers. It worked.

VJ