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