我有一个OpenGL视图的Activity。我还有一个用于首选项的xml布局。到目前为止,为了显示首选项菜单,我只是通过setContentView()将它带到了前面。回到OpenGL视图也一样。
但这是一个我应该给首选项菜单自己的Activity吗?
我想这会让一些事情变得更容易。例如,后退按钮可以正常工作,现在我不得不对其进行编码,或者只是退出应用程序。
如果这是一个好主意,我如何双向传递数据?我有一个存储所有首选项的类。我可以将它发送到活动并再次返回吗?或者是将首选项存储在sqlite数据库中然后用它来传递数据的最佳方法?
答案 0 :(得分:1)
我发现将菜单等分离成单独的活动更容易(除非您使用对话框等)。至于存储数据,您可以通过多种方式实现:
每个人都有自己的优点。 4非常简单,因为您只需在清单中声明应用程序类名称然后调用:MyAppClass app =(MyAppClass)getApplicationContext();然后你可以通过app在MyAppClass中使用任何变量。 2也很简单。
答案 1 :(得分:1)
你已经指出了主要的区别:历史管理。
您可以通过Intents putExtra()/ getExtra()将数据传递给Activity:
Intent.putExtra(..)
startActivityForResult(intent)
。 intent.getXyzExtra()
获取额外数据(其中xyz是类型)。setResult(int, resultIntent)
。您可以再次添加额外的数据,如1。finish()
结束活动。onActivityResult
。再次从Intent中提取数据,如3所述。