何时使用更多活动

时间:2010-11-14 14:04:12

标签: android user-interface android-layout

我有一个OpenGL视图的Activity。我还有一个用于首选项的xml布局。到目前为止,为了显示首选项菜单,我只是通过setContentView()将它带到了前面。回到OpenGL视图也一样。

但这是一个我应该给首选项菜单自己的Activity吗?

我想这会让一些事情变得更容易。例如,后退按钮可以正常工作,现在我不得不对其进行编码,或者只是退出应用程序。

如果这是一个好主意,我如何双向传递数据?我有一个存储所有首选项的类。我可以将它发送到活动并再次返回吗?或者是将首选项存储在sqlite数据库中然后用它来传递数据的最佳方法?

2 个答案:

答案 0 :(得分:1)

我发现将菜单等分离成单独的活动更容易(除非您使用对话框等)。至于存储数据,您可以通过多种方式实现:

  1. 数据库
  2. StoredPreferences
  3. 使用putExtra / Bundle
  4. 实现额外功能
  5. 创建应用程序子类并在那里存储首选项
  6. 每个人都有自己的优点。 4非常简单,因为您只需在清单中声明应用程序类名称然后调用:MyAppClass app =(MyAppClass)getApplicationContext();然后你可以通过app在MyAppClass中使用任何变量。 2也很简单。

答案 1 :(得分:1)

你已经指出了主要的区别:历史管理。

您可以通过Intents putExtra()/ getExtra()将数据传递给Activity:

  1. 创建一个Intend并通过Intent.putExtra(..)
  2. 添加自定义数据
  3. 开始新的活动:startActivityForResult(intent)
  4. 在新活动中,您可以使用intent.getXyzExtra()获取额外数据(其中xyz是类型)。
  5. 完成新活动后,只需致电setResult(int, resultIntent)。您可以再次添加额外的数据,如1。
  6. 中所述
  7. 致电finish()结束活动。
  8. 在原始活动方法中,将调用onActivityResult。再次从Intent中提取数据,如3所述。