De Java à l'aide enum avec l'instruction switch

J'ai regardé divers Q&Comme similaire à cette question, mais n'ai pas trouvé de solution.

Ce que j'ai est un enum qui représente les différentes façons d'afficher un Guide TV...

Dans le NDroid Application classe

static enum guideView {
    GUIDE_VIEW_SEVEN_DAY,
    GUIDE_VIEW_NOW_SHOWING,
    GUIDE_VIEW_ALL_TIMESLOTS
}

...lorsque l'utilisateur change le point de vue d'un gestionnaire d'événement reçoit un int de 0-2 et je voudrais faire quelque chose comme ça...

Dans un Android Activity onClick(DialogInterface dialog, int which) gestionnaire d'événement

//'which' is an int from 0-2
switch (which) {
    case NDroid.guideView.GUIDE_VIEW_SEVEN_DAY:
    ...
    break;
}

Je suis habitué à C# enums et sélectionnez/cas des déclarations qui permettrait à quelque chose comme ci-dessus et je sais que Java fait les choses différemment, mais je n'arrive pas à faire sens de ce que je dois faire.

Vais-je avoir recours à des if déclarations? Il y aura probablement ne sera jamais que 3 choix si je pouvais le faire, mais je me demandais comment il pourrait être fait avec interrupteur-cas en Java.

MODIFIER Désolé je n'ai pas complètement étendre sur la question que je regardais comme un générique de Java problème. J'ai ajouté à la question, pour expliquer un peu plus loin.

Il n'y a pas tout ce qui est Android spécifique qui est pourquoi je n'ai pas de balise comme Android, mais l'enum est défini dans le Application classe et le code où je wan pas le commutateur est dans un Activity. L'enum est statique, comme j'ai besoin d'accéder à de multiples Activités.

  • Faut juste être case GUIDE_VIEW_SEVEN_DAY après un bon importations; ce problème(s) êtes-vous d'avoir?
  • Ne pouvez-vous pas juste faire de votre gestionnaire d'événement pour recevoir un enum? A côté de cela, peut-être cela va aider: stackoverflow.com/questions/5292790/...
  • Oups désolé, j'ai corrigé le code de montrer comment il est. Eclipse me donne une erreur d'Incompatibilité de Type, disant qu'il ne peut pas convertir de guideView int.
  • Ce est une application Android et le gestionnaire d'événements (OnClickListener ) est définie par la DialogInterface interface que j'ai à mettre en œuvre.
  • Oh, vous m'avez manqué ont été à l'obtenir à partir d'un int--désolé, voir Ophidian réponse, bien que je l'avais mis de la fonctionnalité de l'enum.
  • Vous pouvez basculer sur un type enum avec enum cas ou sur un entier avec des entiers (haha, une lapalissade). Vous devez d'abord obtenir un enum tapé variable GuideView e = GuideView.valueOf(i) ou d'obtenir les valeurs entières de tous les énumérations (le plus tard a l'inconvénient que vous n'êtes pas sûr de la réponse valeurs et devrait ajouter une valeur par défaut: cas.

InformationsquelleAutor Squonk | 2011-11-13