2010-12-12 2 views
3

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

Например

  • нет Интернета
  • никакой лицензии
  • вошли в
  • не вошла в системе
  • в ожидании
  • ошибку
  • Запретной
  • осуждается

На данный момент у меня есть if statements, которые определяют соответствующее состояние приложения и включить или отключить взгляды по мере необходимости. Я думал, что какая-то больная модель STATE может быть лучше.

Может кто-нибудь дать мне некоторое представление о том, как я могу сделать это с помощью такой деятельности? Или в этом случае утверждение if, как это, является лучшим вариантом, так как представления в любом случае тесно связаны с Activity.

+0

Вы решили эту проблему? –

ответ

0

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

Хорошее эмпирическое правило состоит в том, что если вы меняете взгляды существенно из одного состояния в другое, возможно, это должно быть другое занятие? Не должно быть очень немного поводов для изменения LAYOUT взглядов на основе состояния.

+0

Пользователь не может продолжить, если нет Интернета, поэтому я этого не допускаю. Действие отображает три разных этапа, один раз на шаге завершается, следующий становится доступным. Если бы у меня был макет для каждого шага, это было бы слишком запутанным для пользователя. – jax

+1

Наличие приложения, которое ТОЛЬКО работает с Интернетом, кажется странным для меня. Я предполагаю, что такие приложения, как пандоры, требуют интернет, возможно, вам стоит проверить, как они справляются с этой ситуацией? Что касается вашей второй части, то ваша работа не делает ее запутанной для пользователя. У вас могут быть разные действия, которые расширяют несколько другой макет. Если вы включили вы имеете в виду, что вы не меняете макет, и на самом деле просто включаете такие кнопки, как кнопки, которые можно щелкнуть, то это, вероятно, отлично, как оператор if. – Falmarri

0

Этот вопрос такой же старый, как в Интернете, но ОП должен действительно проверить Stateless4J.

Он обеспечивает легкие конечные машины с простым синтаксисом. Я использую его во всех моих проектах Java.