Сделать приложение-волшебник на Android-устройстве

Что вы считаете лучшим способом сделать приложение-волшебник (пользователь может перемещаться между экранами с помощью следующей и обратной кнопки, и каждый экран должен сохранять некоторые данные состояния) на платформе Android.

Я в основном думаю в двух подходах:

  1. Имея один вид активности + для каждого экрана, а затем я делаю экранный переключатель, вызывая каждое действие. Что делает это приятным, так это то, что я могу использовать кнопку «Назад системы» в качестве моего обработчика, и мне не нужно об этом заботиться, так как каждое действие спасет его собственное состояние.

  2. Имея одно действие и множество просмотров, а также то, что я переключаю виды на каждом экране, это помогает мне повторно использовать больше кода, но делает состояния сохранения беспорядочными.

Как вы думаете? Каков наилучший способ сделать это на Android?

Я предлагаю пойти с 2, поскольку это соответствует цели деятельности и взглядам. Сохранение состояния в этом случае легко – если вы используете шаблон MVC, вы можете просто иметь объект модели, который передается вместе с представлениями. В каждом представлении будут части модели, которые он может читать / писать. Независимо от того, где вы находитесь, модель всегда должна иметь текущее состояние. Если вы настроены, просто сохраните модель. Восстановление выполняется автоматически, так как вы уже читали из модели, когда показываете каждую страницу.

Я разработал легкую библиотеку Android, которая построена поверх ViewPager Android, которая может использоваться для создания таких мастеров, как действия. Проверьте это: WizarDroid .

Я пошел с первым подходом, поскольку это кажется более естественным. Другое приложение использует ViewFlipper для переключения представлений, но это далеко не что-то вроде мастера.

Я думаю, 2 лучше. Поместите каждую «страницу» в вид, а затем просто чередуйте показ и скрытие. Делает тривиальным выполнение приятных переходов. Какое состояние вы думаете о поддержании? Единственный, который не работает автоматически, будет сосредоточен, и я думаю, вы, вероятно, захотите сбросить его каждый раз, когда вы переключаете страницы. Это также тривиально, если вы считаете, что это правильное поведение для вашего приложения.

С помощью 1 вы можете повторно использовать почти весь свой код (просто определите свой собственный class WizardBase), но я думаю, что действия намного медленнее запускать (и требуют больше памяти), чем переключение между представлениями.

Давайте будем гением компьютера.