java - 什么时候使用布局,什么时候使用 Activity ?

标签 java android user-interface

<分区>

我正在为 Android 编写游戏。我的 GUI 有以下基本屏幕(即每个屏幕所需的信息和交互将占据整个显示):

  1. 主菜单(让您开始新游戏、进入设置、查看高分、查看关于屏幕)
  2. 游戏画面,即进行实际游戏的地方。
  3. 设置屏幕。
  4. 高分屏幕。
  5. 关于屏幕(即制作人员名单和后退按钮)
  6. 游戏结束画面(游戏结束时到达)
  7. 暂停屏幕(暂停游戏并可以访问设置)

以下是用户可能在这些屏幕之间进行的一些示例转换:

1->2->7->2->6(开始新游戏,暂停游戏,返回游戏,结束游戏) 1->5->1->4->1(查看屏幕,返回主屏幕,查看得分屏幕,返回主屏幕)

我真的很困惑什么时候只有一个切换布局的 Activity 以及什么时候创建新的 Activity 类。例如,当我的游戏加载时,我有一个加载主菜单布局的“主要” Activity 。当您单击设置按钮时,我会启动一个“设置” Activity (使用 android 的标准设置 GUI)。目前,当您开始游戏时,我将“主”布局切换为游戏屏幕布局(仅包含一个大表面 View )。我不太确定在屏幕、高分屏幕、关于屏幕等方面整合游戏的最佳方式是什么。

为每个人创建一个新 Activity 对我来说似乎真的很重。每个 Activity 都涉及很多样板代码。另外, Activity 之间的通信似乎很痛苦,因为您必须使用 bundle 。只使用一个 Activity 意味着我可以直接共享对象字段。看来使用上面的布局会更紧凑。

谁能给我一些建议?

最佳答案

在我的游戏中,我将 Activity 用于大多数... Activity (玩游戏、查看帮助、查看高分、更改设置)。在一个应用程序中意味着您可以在一个单例中共享一些东西(例如当前游戏)。 您可能不需要在 Activity 之间进行大量通信,主要是“顺序”(这就是您参加此 Activity 的原因,例如 High Scores 屏幕中的新高分)并且它可以通过 Intent 发送(我使用 URL 而不是 Bundle)。

可以在对话框中做一些事情(我用它们来启动新游戏,或者输入玩家的名字)。我的规则是,如果屏幕完全改变,那么它就是一个新的 Activity。这样布局很简单。

关于java - 什么时候使用布局,什么时候使用 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2371440/

相关文章:

java - @Value 无法从属性 Autowiring

java - 一个批处理中的两个不同的准备好的语句

java - 为什么运行带有 "./"前缀的 sbt?它不起作用

Android获取实际时间(当互联网关闭且设备时间不正确时)

android - 如何在 Android 中流式传输 RTMP 直播视频

Android UI 小部件垂直对齐问题

java - 可执行的 .jar - 适用于某些用户,但不适用于其他用户

android - (this::methodName) 如何在此代码中工作?

java - SWT:获取即将从文本小部件中删除的字符数

c++ - 当添加到另一个小部件时,qt 小部件重叠