我们正在编写一个应用程序,其中有四个选项卡:地图、人物、地点和事件。 应用程序中的人物、地点和事件显示为地图上的图标。默认情况下,人物、地点和事件选项卡分别显示一个自定义渲染的列表视图,显示所有人物、地点和事件。
但有一个问题:从 Show 活动返回地图时,我们想回到以该人、地点或事件为中心的地图。我们可以启动一个新的活动来再次显示地图,但现在选项卡的内容变成了地图活动,加上 Show 活动以及活动堆栈中的新地图活动;考虑到地图活动的资源密集型特性,我猜这不是理想的方法。
我想问一下,是否有一个好的教程可以展示如何使用TabHost完成复杂任务?我看过HelloTabWidget;我正在寻找比这更复杂的东西。我担心如果我们切换到基于View的方式,我们将不得不进行大量的清理工作来拦截所有返回事件,尝试切换视图等,以及强烈耦合我们的程序,这是我们不想要的。任何关于前进方向的建议都将非常感激。我们是Android新手,所以我们正在尝试遵循已经建立的最佳实践,但当我们看到的少数示例对我们的用例来说太简单时,这很困难。
alt text http://web6.twitpic.com/img/37202700-f92052dc474b74e1760edda1c47f6940.4adcb134-scaled.png
现在,每个选项卡都有一个意图作为其内容,以启动相应的活动。例如,有一个MapTabActivity扩展了MapActivity,一个ShowPeopleListActivity显示人员列表,等等。
我看到很多StackOverflow的问题/答案,说由于TabHost的设置方式有各种限制,最好不要使用活动作为选项卡的内容。例如,无法启动新活动并使其取代选项卡中现有的活动,而可以将视图替换为不同的视图。
现在,我面临抉择。我们(不管是好是坏)花了相当多的时间来让这个应用程序按照当前结构正常运行,其中活动作为选项卡的内容。当单击与人、地点或事件对应的图标时,它会触发一个 VIEW Intent,该 Intent 对应于该对象的 URI;然后由一个 Activity 接收并显示该对象。同样的机制在地图和单独的列表中都起作用。我们真的很喜欢这种松散耦合方式;我们只需给出 VIEW 命令和指向人/地点/事件的 URI,它就会自动带我们到正确的活动中。当然,启动的活动覆盖了选项卡视图,而不是出现在其中,但我们愿意接受这一点。但有一个问题:从 Show 活动返回地图时,我们想回到以该人、地点或事件为中心的地图。我们可以启动一个新的活动来再次显示地图,但现在选项卡的内容变成了地图活动,加上 Show 活动以及活动堆栈中的新地图活动;考虑到地图活动的资源密集型特性,我猜这不是理想的方法。
我想问一下,是否有一个好的教程可以展示如何使用TabHost完成复杂任务?我看过HelloTabWidget;我正在寻找比这更复杂的东西。我担心如果我们切换到基于View的方式,我们将不得不进行大量的清理工作来拦截所有返回事件,尝试切换视图等,以及强烈耦合我们的程序,这是我们不想要的。任何关于前进方向的建议都将非常感激。我们是Android新手,所以我们正在尝试遵循已经建立的最佳实践,但当我们看到的少数示例对我们的用例来说太简单时,这很困难。