android - 我应该使用多少 Activity ?

标签 android

我正在启动 Android 做一个搜索餐厅的应用程序,欢迎提供一些指导! 在第一个屏幕上,我希望有一个带有提交按钮的搜索字段(我从 Web 服务获取数据),下面是一个包含搜索结果的列表。单击列表中的一项时,它将显示一个包含餐厅详细信息的屏幕以及显示其位置的 map 。我的问题是:

  • 我可以在一个 Activity 中完成所有操作,还是应该为搜索、结果列表、餐厅描述和 map 分别做一个 Activity ?
  • 执行一项 Activity 会使应用程序响应更快吗?
  • 如何在普通 Activity 中使用列表和 map (没有 ListActivity 和 MapActivity)?

最佳答案

我可以在一个 Activity 中完成所有事情,还是应该为搜索、结果列表、餐厅描述和 map 分别做一个 Activity ?

这个问题的答案实际上取决于您的应用程序的流程。我认为这里要记住的最重要的事情是用户将如何使用“后退”按钮控制您的应用程序。当您创建一个新的 Activity 时,它会将其放入堆栈中,用户可以随时按“返回”将其从堆栈中弹出。

一个极端是将所有这些步骤放入不同的 Activity 中。然后用户可以使用“后退”按钮进行最终控制,但他们可能会因为在 Activity 中跳跃而感到恼火。将所有内容放在一个 Activity 中是另一个极端,我强烈建议不要这样做;用户希望新屏幕是一个不同的 Activity,他们可以“退回”出来,因此如果您将所有鸡蛋放入一个 Activity,您将不得不自己开始处理“退回”。

我认为您的应用可以采取一个很好的中间立场,当然您的 UI 设计可能与我建议的有所不同。我想说你可以在两个 Activity 中做到这一点;首先,您在顶部有一个搜索字段(旁边有一个提交按钮),在该搜索字段下方是一个填充有结果的 ListView。在第二种情况下,您使用 TabActivity,其中一个选项卡用于描述,另一个选项卡用于 map 。我认为这有两个好处:在第一个 Activity 上,用户在与搜索相同的页面上看到他们的搜索结果,并且可以在必要时快速更改搜索参数。而在第二个 Activity 上,返回键封装了退出一个餐厅。

做一个单一的 Activity 会让应用程序更具响应性吗?

不是真的。 Activity 需要时间来创建/拆除,但不会那么太多时间。最好以合乎逻辑的方式(为了用户体验)分割您的应用程序。

如何在正常的 Activity 中使用列表和 map (没有 ListActivity 和 MapActivity)?

您可以在没有 ListActivity 的普通 Activity 中使用 ListView;只需在 Activity 的内容中包含一个 ListView,然后在代码中抓取 ListView 并手动设置其适配器。 ListActivity 所做的只是为一个主要的 ListView 添加一些方便的包装函数,但根本没有必要。

map 是另一回事。您将需要使用 MapActivity 来显示 map ,因为 MapActivity 具有需要运行的特殊设置和拆卸代码。对不起。

关于android - 我应该使用多少 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782131/

相关文章:

javascript - Phonegap - 读取子目录?

java - xtify + Phonegap 启用声音和振动

android - 新的 gcmSender 值停止所有推送通知工作

java - Android 应用程序在 Intent 时崩溃

android - android studio 中的 renderscript 支持模式

java - 为什么在使用 FLAG_ACTIVITY_REORDER_TO_FRONT 时不能禁用更改 Activity 的动画?

java - 如何在不更改默认选择的输入法服务的情况下创建附加输入法服务?

Android:即使我调用 unregisterReceiver,也会抛出泄漏的 IntentReceiver 异常

Android - 在 ADB 工作时无法在 Ubuntu 上的 Eclipse 中安装/调试应用程序

android - 无法在 phonegap android 中加载 HelloWorld 示例