我正在开发一款Android应用程序,它有多个用户需要在其间导航的屏幕,我很好奇在这些屏幕之间切换时的最佳做法。我在为每个屏幕创建一个新的Activity和简单地更改视图(setContentView(R.layout.whatever))之间徘徊。屏幕都至少共享一些变量值,所以我倾向于改变视图和使用类级变量,但我担心单个活动可能变得非常大,并且在单个文件中对多个屏幕的逻辑感到困惑。我想保持代码清洁和分离,但如果不需要,我也不想在视图之间传递几个变量。
作为Android开发的新手,我希望一些更有经验的社区成员可以分享他们的想法,让我知道如何最好地处理它。
谢谢!
注意: 我没打算使用viewflipper。我的想法是使用按钮单击事件,然后调用setContentView()到我想要显示的页面的新视图。
示例:我的应用程序使用R.layout.main作为视图启动。用户单击“帮助”按钮,它会调用运行setContentView(R.layout.help)的方法;显示帮助屏幕而不是切换到帮助活动。
答案 0 :(得分:9)
您应该在每个屏幕上使用一个活动,因为这样可以充分利用框架,并允许操作系统在事情变得紧张时有选择地杀死屏幕。
如果您只有一项活动并且资源紧张,那么操作系统有两种选择;杀死一切或杀死任何东西,如果用户没有使用你的应用程序,那么它很可能会杀死所有东西。
如果您在每个屏幕上使用一个活动,操作系统可以终止用户暂时没有访问的某些屏幕,同时仍然允许其他人保持活动状态,这样用户就可以快速返回它们。
至于共享变量和值,如果它们被广泛共享,你可以使用SQLite数据库或SharedPreferences存储来传递它们,或者如果它们只是从一个屏幕用到下一个屏幕,则可以在Intent中使用putExtra方法。
答案 1 :(得分:0)
如果您有重复使用的变量为它们创建一个基类,那么您将扩展它。
这可以是扩展Activity
的自定义活动。
据我所知,你必须为每个视图创建单独的活动,viewflippers只能处理一些情况。