Android活动与视图

时间:2010-08-18 19:22:52

标签: android

抱歉,我知道这个话题已经有所涉及了。我已阅读相关帖子,我仍然有点困惑。我正在开发一个应用程序,虽然原型将有3个主屏幕,但最终将有数十个。每个屏幕都将呈现动态变化状态或用户输入。为了可视化,需要布局类似于MS Word或典型PC的方式。它的顶部有一个状态栏,底部有一个导航栏,对于所有屏幕都是通用的(对于某些屏幕略有调整,比如不同的图标),我称之为需要更新的视图窗格。适用的布局。

状态,导航栏和每个屏幕都在自己的布局xml文件中定义。对于我第一次嘲笑它,我只使用了ViewFlipper并将3个屏幕布局加载到其中。但是,这意味着目前我有一个主要的Activity,因为我继续添加屏幕,所以无法维护。

  1. 我认为每个屏幕布局都应该有一个关联的Activity类,它理解如何控制该屏幕。我需要弄清楚如何动态加载到中心窗格。但是我想我在另一篇文章中读到,使用多个活动可能会占用CPU和RAM。
  2. 目前我尝试将其中一个屏幕作为自己的Activity,并通过创建一个Intent而不是调用startActivity从主Activity中启动它。但是,这会导致新屏幕Activity驻留在主Activity之上。有趣的是,然后按下后退按钮取消了该活动并将我返回到主要部分。
  3. 到目前为止,我还没有想出如何在中心窗格中设置不同的Activity控件。
  4. 如果我继续沿着多个活动路径继续,我的主要活动应该从活动组继承吗?
  5. 在这种情况下,使用View类更适用吗?
  6. 我知道这是一篇很长的帖子。我很感激任何建议。 谢谢! CB

3 个答案:

答案 0 :(得分:3)

正如您所注意到的,Android将隐式跟踪任务中的一堆已启动活动,“后退”按钮结束最后一个,重新激活下一个。我建议你考虑一下用户可能期望后退按钮做什么,然后让它们沿着这些线分开活动。

我没有和ActivityGroup玩过,所以我不能在那里建议你。如果您使用完全独立的活动,则可以让他们使用相同的“shell”内容视图和公共导航/状态栏。有一个超类或实用程序类句柄从那里填充和管理它。然后使用LayoutInflater(您可以调用getLayoutInflater())在中间填写特定于活动的视图。

如果您希望其中一个活动有多个屏幕,您可能仍会在中心插槽中使用ViewFlipper。同样,您希望在用户能够“返回”的任何地方进行“活动”转换;这也意味着你可能不希望在屏幕紧密相关或者是同一个逻辑事物的一部分的情况下改变活动。 (您可以覆盖后退按钮的行为,但除非您有充分的理由,否则最好只安排应用程序,以便Android的基本设置可以帮助您的应用程序的UI,而不是交叉工作。)

答案 1 :(得分:1)

如果您想以您所谈论的方式使用活动,您可能会考虑使用标签活动。它实际上以您想要的方式工作,您只需要隐藏选项卡小部件并将导航栏放在那里。或者,如果你有更多的时间,你可以更深入一些,让你拥有像沃尔特所提到的类似标签式的活动组。

答案 2 :(得分:1)

您可以使用带有片段的视图寻呼机来完成不同视图之间的翻转,但仍允许您的活动完全控制它。当片段控制您的查看区域时,活动可以控制菜单。这样,您的后退按钮将正确地关闭包含与活动相关的所有页面的活动,而不是沿着堆栈向下走。