Spojrzałem na różne pytania i odpowiedzi na SO podobne do tego pytania, ale nie znalazłem rozwiązania.
To, co mam, to wyliczenie, które reprezentuje różne sposoby przeglądania przewodnika telewizyjnego ...
W Application
klasie NDroid
static enum guideView {
GUIDE_VIEW_SEVEN_DAY,
GUIDE_VIEW_NOW_SHOWING,
GUIDE_VIEW_ALL_TIMESLOTS
}
... kiedy użytkownik zmienia widok, program obsługi zdarzeń otrzymuje int
od 0-2 i chciałbym zrobić coś takiego ...
W programie Activity
onClick(DialogInterface dialog, int which)
obsługi zdarzeń systemu Android
// 'which' is an int from 0-2
switch (which) {
case NDroid.guideView.GUIDE_VIEW_SEVEN_DAY:
...
break;
}
Jestem przyzwyczajony do wyliczeń C # i instrukcji select / case, które pozwoliłyby na coś takiego jak powyższe i wiem, że Java robi rzeczy inaczej, ale po prostu nie mogę zrozumieć, co muszę zrobić.
Czy będę musiał uciekać się do if
oświadczeń? Prawdopodobnie będą tylko 3 opcje, więc mogłem to zrobić, ale zastanawiałem się, jak można to zrobić z przełącznikiem w Javie.
EDYTUJ Przepraszamy, nie rozwinęłam tego problemu całkowicie, ponieważ patrzyłem na niego jako na ogólny problem z Javą. Dodałem do pytania, aby nieco bardziej wyjaśnić.
Nie ma niczego, co jest specyficzne dla Androida, dlatego nie oznaczyłem go jako Androida, ale wyliczenie jest zdefiniowane w Application
klasie, a kod, w którym nie chcę, aby przełącznik znajdował się w pliku Activity
. Wyliczenie jest statyczne, ponieważ muszę uzyskać do niego dostęp z wielu działań.
OnClickListener
) jest zdefiniowany przez DialogInterface
interfejs, który muszę zaimplementować.
case GUIDE_VIEW_SEVEN_DAY
po odpowiednim imporcie; jaki masz problem (y)?