Android中的资源是最终的吗?

时间:2015-12-18 10:01:06

标签: android

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;
}

2 个答案:

答案 0 :(得分:1)

将id转换为唯一的整数值,并通过启用{value}}的值,int值将始终映射到该资源。

相关问题来自2011年。

至于XML::TwigR.id.myvalue,如果你只有几个值,那么if语句可能会更好,一个更长的列表然后是一个开关,这是编程基础。请注意,这不是一成不变的。 When to use If-else if-else over switch statments and vice versa

答案 1 :(得分:1)

我们可以使用if elseswitch两者都可以使用。当您使用R.id.yourResource时,它会转换为一个int,这就是为什么if elseswitch都能正常工作。