问题
I have a TabActivity and am going to have 3 or 4 tabs.
In TabA, I would like to have an ExpandableListView, which will list products. I would like TabC to act as a sort of "shopping cart", probably with a ListView of itself.
Is there a way to interact with the TabHost from the Activity? I would like to be able to click a button inside of TabA and have it update and switch to TabC. Is this possible? Can I get the Tab's activities call its parents methods?
回答1:
If you implement your tabs as views, rather than individual activities, this would be far simpler, run faster, take up less memory, and be a better solution IMHO.
That being said, in the Tab A Activity, call getParent() to get at the TabActivity. Then, you can use the methods pointed out by disretrospect.
回答2:
Try to use this code to change activity within a tab:
TabActivity parent = (TabActivity) getParent();
TabHost tabhost = parent.getTabHost();
tabhost.setCurrentTab(0);
回答3:
You can call getTabHost from a TabActivity, see public TabHost getTabHost().
See Tabhost for setCurrentTab, public void setCurrentTab(int index).
回答4:
- In your Activity, use getParent() to get the TabActivity parent
- In your TabActivity class, use getLocalActivityManager().getActivity(tabId) to get the Activity object
- call the Activity object's method
来源:https://stackoverflow.com/questions/2945274/update-tabs-from-a-tabs-activity-in-a-android-tabhost