我看过SO中类似于这个问题的各种问答,但没有找到解决方案。
我有一个枚举类型,表示不同的电视指南视图方式...
在NDroid的Application
类中
static enum guideView {
GUIDE_VIEW_SEVEN_DAY,
GUIDE_VIEW_NOW_SHOWING,
GUIDE_VIEW_ALL_TIMESLOTS
}
当用户更改视图时,事件处理程序会接收一个从0-2的int
,我想做类似于这样的事情...
在Android的Activity
中的onClick(DialogInterface dialog, int which)
事件处理程序中
// 'which' is an int from 0-2
switch (which) {
case NDroid.guideView.GUIDE_VIEW_SEVEN_DAY:
...
break;
}
我习惯于使用C#的枚举和选择/情况语句,这使得上述内容成为可能。我知道Java的处理方式与此不同,但我无法理解我需要做什么。
我是否必须使用if
语句?可能只有3种选择,所以我可以这样做,但我想知道如何在Java中使用switch-case语句来完成。
编辑 对不起,我没有完全阐述问题,因为我认为这是一个通用的Java问题。我已经补充了问题以进一步解释。
这里没有任何特定于Android的内容,这就是为什么我没有将其标记为Android的原因,但是枚举在Application
类中定义,而我想要使用switch的代码则在一个Activity
中。该枚举是静态的,因为我需要从多个活动访问它。
case GUIDE_VIEW_SEVEN_DAY
,你遇到了什么问题? - Dave NewtonOnClickListener
)由我必须实现的DialogInterface
接口定义。 - SquonkGuideView e = GuideView.valueOf(i)
或获取所有枚举的整数值(后者的缺点是你不能保证没有未声明的值,应该添加一个默认情况:case)。 - eckes