制作一个像Android应用程序的向导

您认为在Android平台中执行像应用程序一样的向导(用户可以使用下一个和后退button在屏幕之间导航,每个屏幕都必须保存一些状态数据)的最佳方式。

我主要可以用两种方法来思考:

  1. 有一个活动+每个屏幕的观点,然后我通过调用每个活动使屏幕切换。 是什么让这个好处是,我可以使用系统后退button作为我的后台处理程序,我不必自己照顾,以及每个活动将保存自己的状态。

  2. 有一个活动和许多意见,我切换在每个屏幕的意见,这有助于我重新使用更多的代码,但使保存状态一团糟。

你怎么看? Android上这样做的最好方法是什么?

Solutions Collecting From Web of "制作一个像Android应用程序的向导"

我build议跟2一起去,因为它符合活动和观点的目标。 在这种情况下保存状态很简单 – 如果您使用MVC模式,您可以简单地有一个传递给视图的模型对象。 每个视图都有它可以读/写的模型的一部分。 不pipe你在哪里,模型应该总是有现在的状态。 如果你被处置,只需保存模型。 由于您在显示每个页面时已经从模型中读取,所以自动恢复工作将自

我开发了一个轻量级的Android库,它build立在Android的ViewPager之上,可以用来创build类似于向导的活动。 检查出来: WizarDroid 。

我已经走了第一个方法,因为它似乎更自然。 另一个应用程序使用ViewFlipper切换视图,但是这远远不是像向导一样。

我觉得2更好。 把每个“页面”放在一个视图中,然后在显示和隐藏它们之间交替。 使得做漂亮的转换变得微不足道。 你想维护什么状态? 唯一不能自动工作的就是焦点,我想你可能想在每次切换页面时重置它。 如果你认为这是你的应用程序的正确行为,那么回收也是微不足道的。

使用1,你可以重新使用几乎所有的代码(只需定义你自己的WizardBase类),但是我认为,启动(和需要更多的内存)要比在视图之间切换慢得多。