最新的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
,此代码应该没问题,不应该造成任何问题,不应该吗?
答案 0 :(得分:2)
这种方法可以吗?
为了便于阅读,我使用Build.VERSION_CODES.HONEYCOMB
代替11
,否则就是。
在Eclipse中,只有一些警告,但它们当然可以被抑制。
Eclipse将指出API级别8中不存在setCalendarViewShown()
。它没有可靠的方法来确认您只是在版本保护块中调用该方法,所以它只是抱怨。使用TargetApi(11)
注释将摆脱它,同时仍然确保如果你向需要高于11的东西的方法添加 else ,你将再次收到警告。
由于检查了SDK_INT,这段代码应该没问题,不应该有问题,不应该吗?
是
BTW,在这种特殊情况下,您可以使用(android:calendarViewShown
)替换呼叫的XML属性。由于旧版本会自动忽略XML属性,因此您可以跳过Build
检查。