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.
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");
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With