【问题标题】:Why does this works (googleIO acionbarherlper?为什么这行得通(googleIO acionbarherlper?
【发布时间】:2012-02-26 11:37:32
【问题描述】:

所以代码如下:

public static ActionBarHelper createInstance(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        return new ActionBarHelperICS(activity);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        return new ActionBarHelperHoneycomb(activity);
    } else {
        return new ActionBarHelperBase(activity);
    }
}

如果我的设备是 2.3 (api 9),它不应该支持 Build.VERSION_CODES.ICE_CREAM_SANDWICH 但它却可以运行,这是为什么呢?如果它是我调用的一种方法,它就会崩溃。是因为它是一个公共静态最终 int 并因此添加到我的代码中吗?请给出一些一般性的细节,而不仅仅是一个是/否的答案:)

【问题讨论】:

  • 用于编译代码的 API 级别决定了编译时可见的常量。因为它是一个常量,所以它被编译到代码中。
  • 好的,正如我所说,没有令人讨厌的隐藏惊喜;)

标签: android version android-actionbar


【解决方案1】:

正如 Stefan 所指出的,用于编译代码的 api 级别决定了在编译时可见的常量。就我而言,这不会带来任何问题,因为我只是比较简单的值。只有当您使用使用不同常量的 set 方法并且您碰巧使用了您的 api 版本无法处理的常量时,这才会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 2014-12-02
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多