2010-12-12 3 views
3

J'ai une activité qui peut avoir plusieurs états différents.Gestion d'une activité avec plusieurs états

Par exemple

  • pas Internet
  • pas de licence
  • connecté
  • pas connecté
  • en attente
  • erreur
  • restreint
  • dépréciée

Au moment où j'ai if statements qui déterminent l'état approprié de l'application et activer ou désactiver des vues au besoin. Je pensais que certains mal de STATE pourrait être mieux. Est-ce que quelqu'un peut me donner une idée de comment je pourrais le faire avec une activité comme celle-ci? Ou dans ce cas, une instruction if comme ceci est une meilleure option car les vues sont étroitement liées à l'activité de toute façon.

+0

Avez-vous résolu ce problème? –

Répondre

0

Je ne voudrais pas désactiver les points de vue pour certaines de ces choses, c'est-à-dire pas d'internet. Laissez simplement l'utilisateur essayer d'interagir et de donner des messages d'erreur pertinents.

Une bonne règle est que si vous changez les vues de manière significative d'un état à l'autre, peut-être que cela devrait être une activité différente? Il devrait y avoir très peu de raisons de modifier le LAYOUT des vues en fonction de l'état.

+0

L'utilisateur ne peut pas continuer s'il n'y a pas d'internet, donc je ne le permet pas. L'activité affiche trois étapes différentes, une fois l'étape terminée, la suivante devient disponible. Si j'avais une mise en page pour chaque étape, cela serait trop déroutant pour l'utilisateur. – jax

+1

Avoir une application qui fonctionne UNIQUEMENT avec Internet me semble étrange. Je suppose que des applications comme Pandora nécessitent Internet, peut-être que vous devriez vérifier comment ils gèrent cette situation? Pour ce qui est de votre deuxième partie, c'est votre travail de ne pas le rendre confus pour l'utilisateur. Vous pouvez avoir différentes activités qui développent toutes une mise en page légèrement différente. Si, par activé, vous voulez dire que vous ne modifiez pas la mise en page et que vous activez simplement des éléments comme des boutons, alors c'est probablement une instruction if. – Falmarri

0

Cette question est aussi vieille que l'Internet maintenant, mais l'OP devrait vraiment vérifier Stateless4J.

Il fournit des machines à états finis légères avec une syntaxe facile. Je l'utilise dans tous mes projets Java.

Questions connexes