gpt4 book ai didi

android - SDK版本切换中Android新API调用方法

转载 作者:太空狗 更新时间:2023-10-29 13:33:49 24 4
gpt4 key购买 nike

最新的 Android API 有一些旧的 Android 版本所没有的有用方法。例如,DatePicker 有一个名为 setCalendarViewShown() 的新方法,它不适用于旧 API,例如 Android 2.2(级别 8)等。

但是,我已将最低 API 级别设置为 8,将目标级别设置为 16。因此,如果可用(在 11 级以上的设备上),我想使用这些方法。

现在我尝试以编程方式区分几个 API 级别,如果可用,则调用如下方法:

if (android.os.Build.VERSION.SDK_INT >= 11) {
datePicker.setCalendarViewShown(false);
}

这个方法可以吗?在 Eclipse 中,只有一些警告,当然,它们可以被抑制。由于检查了 SDK_INT,这段代码应该没有问题,不会造成问题,不是吗?

最佳答案

Is this approach okay?

为了可读性,我会使用 Build.VERSION_CODES.HONEYCOMB 而不是 11,但除此之外是的。

In Eclipse, there's just some warnings, but they can be suppressed, of course.

Eclipse 会指出 setCalendarViewShown() 在 API 级别 8 中不存在。它没有可靠的方法来确认您只是在版本保护 block 中调用该方法,所以它只是提示.使用 TargetApi(11) 注释将摆脱它,同时仍然确保如果您向需要高于 11 的方法添加else 内容,您将收到警告再次。

Due to checking for the SDK_INT, this code should be fine and cause no problems, shouldn't it?

是的。

顺便说一句,在这种特殊情况下,您可以使用一个 XML 属性 (android:calendarViewShown) 来替换调用。由于旧版本会自动忽略 XML 属性,因此您可以跳过 Build 检查。

关于android - SDK版本切换中Android新API调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12789219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com