【发布时间】:2011-07-20 15:16:26
【问题描述】:
我仍在寻找如何使用带有菜单和工具栏的布局以及在 android 中膨胀或启动活动的最佳解决方案。我的问题可能听起来令人困惑,但我试图用一个例子来解释它。
假设我正在编写一个 android 应用程序(惊喜.. 我真的这样做了)
我的应用可以执行以下操作:
- 用户可以登录[3]或注册[2]。如果他登录,一个新的活动开始,他的仪表板将显示。如果他注册:注册过程的活动开始。
- 注册过程:用户输入他想要的用户名和密码并按下按钮接受。他的数据将被验证,如果有效,一个新的活动开始,他可以选择他的设置。后退按钮有效,数据可以传递给新活动。最后一次注册后,将保存窗口数据并启动仪表板。开始新的活动很有趣!
- 现在事情变得复杂了。 Dasboard 有一个“操作栏”(顶部)和一个“工具栏”(底部,如选项卡)。所以一切都应该在视口的中间部分查看(现在称为主视图)。没有更多的活动切换:(,寿。 目前,每个 tabclick 都会从主视图中删除所有视图并添加其新视图。看起来很棒,可以动画并且像魅力一样工作。除了:它目前不是动态的。
所以...我不知道如何以最好的方式解决它。例如:我从 web 服务获取数据,从中创建一个列表视图,它正在扩展列表活动。我无法启动此活动,但需要将这些数据放入主视图。我怎样才能做到最好? 效率高吗?
我正在练习,这实际上是我想开始的第一个小讨论。所以...战斗! ;)
更新: 我看到了一种有趣的方式来开始活动并获得结果。 Launching activity through intents .活动开始后是否可以插入新/更新视图?然后,我将在单独的活动中生成我的结果。更新视图。返回“仪表板”并加载刚刚更新的视图。可能的?还是效率低下?以及如何更新另一个活动的视图?我需要学习的东西太多了:/
更新 2: 一个很好的例子:Google+ 太糟糕了,我没有他们的源代码;)
更新3: 什么是最好的?
- 加载新活动,禁用动画并设置选定的工具箱选项卡 + 禁用后退按钮功能
- startActionForResults,获取结果并更新当前视图(仍然不知道这怎么可能)
- viewFlipper onflip 改变+更新翻转视图中的数据。
我仍然不知道任何有效的解决方案。还是我错过了一些重要的东西?我刚刚完成了我的 ListActivity 以从我的网络服务中获取数据。但它仍然在一个单独的活动中运行。我现在如何将它实施到我的“主视图”中?当然......我可以设置一个列表我的自定义适配器。但目前我在创建 listactivity 时正在更新和从服务器获取数据。
恐怕这可能是我能得到的唯一答案:Embed external Intent in main Activity
UPDATE4:我正在尝试一些事情。 根据 nininho 的回答(谢谢!)我正在尝试以下方法:
- 启动 Dashboardactivity 并创建 ViewFlipper。
- 每个 Toolbarclick 代表一个特定的 ViewFlipper 页面。
- 每个页面都实现了一个 Listadapter 并显示不同的结果(不同的 Web 服务查询)。 (ListView、GridView,有profileimage,没有profileimage)
- 在工具栏上单击启动 AsyncTask 或服务并通知当前页面中的列表数据已更改。 (当然如果数据发生了变化)。切换到被点击的页面。
- 实施更新功能。滚动到列表底部 = 获取更多数据并添加它。 5 分钟后自动更新其他列表。或点击更新按钮更新列表。
迄今为止的专业人士:整个活动的独立后退按钮。可以进行翻页动画。列表的异步更新,仍然可以切换到另一个列表。
缺点: ...有人有吗?这种方法的效率如何? ViewFlipper 是否携带所有信息,因此性能会下降,或者 viewflipper 是否回收其视图(如 ListView)?
更新5: 如果我有时间,我会让这里的所有内容更具阅读性和讨论性。不要因为我看我的垃圾而生我的气;)
【问题讨论】:
标签: android view android-activity