目前我有一个 TabHost,它实现了 3 个选项卡,每个选项卡包含一个单独的活动。我的问题是如何在位于选项卡主机内的活动之一中的选项卡之间进行切换。我到处寻找但未能找到这个问题的真正答案。
经过长时间与这个问题的斗争,我已经找到了在使用基于活动的选项卡时切换选项卡的解决方案。
在创建 tabhost 的父活动类中,我实现了如下方法:
public void switchTab(int tab){
tabHost.setCurrentTab(tab);
}
在我希望能够内部切换到另一个选项卡的选项卡内部,我创建了以下方法:
public void switchTabInActivity(int indexTabToSwitchTo){
MintTrack parentActivity;
parentActivity = (MintTrack) this.getParent();
parentActivity.switchTab(indexTabToSwitchTo);
}
如果您想要此代码的一个很好的示例,您可以查看我的 MintTrack 项目here http://code.google.com/p/minttrack/source/browse/branches/MintTrackV2/MintTrack/src/com/ponyinc/minttrack/MintTrack.java and here http://code.google.com/p/minttrack/source/browse/branches/MintTrackV2/MintTrack/src/com/ponyinc/minttrack/tabs/AuditActivity.java.
作为旁注,在决定是使用基于视图还是基于活动的 TabHost 时请非常小心。
Activity
基于选项卡很棒,因为它们可以分成自己的 XML 文件。活动还可以组织到自己的 Java 文件中,而不是杂乱地组织到一个文件中。话虽这么说,一些您认为很容易的事情在基于活动的选项卡中变得复杂。在选项卡之间传递信息而不产生开销是很困难的。Activity
基于选项卡还使用更多内存/CPU 时间,因为它们具有Activity
他们每个人周围。在开始使用之前请考虑这一点以及更多的权衡Activity
based TabHost
。我现在知道我个人会选择基于观点的TabHost
如果我再次使用它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)