如http://tools.android.com/tips/non-constant-fields中所述,资源ID不是最终的(在ADT 14中)。因此,开关的检查已中断(请参阅:Android resource IDs suddenly not final, switch()'es broken)。 但是在打开R.java之后,您可以看到有 final 资源。 那么,使用什么 - 如果或切换?什么版本的SDK需要 if 语句? 如果我写
,Lint就不会发出警报switch (v.getId()) {
case R.id.llBirthday:
...
break;
case R.id.llCity:
...
break;
}
答案 0 :(得分:1)
将id转换为唯一的整数值,并通过启用{value}}的值,int值将始终映射到该资源。
相关问题来自2011年。
至于XML::Twig
或R.id.myvalue
,如果你只有几个值,那么if语句可能会更好,一个更长的列表然后是一个开关,这是编程基础。请注意,这不是一成不变的。 When to use If-else if-else over switch statments and vice versa
答案 1 :(得分:1)
我们可以使用if else
或switch
两者都可以使用。当您使用R.id.yourResource
时,它会转换为一个int,这就是为什么if else
和switch
都能正常工作。