gpt4 book ai didi

android - 如何只在特定的 API 级别上执行代码

转载 作者:可可西里 更新时间:2023-11-01 18:57:20 27 4
gpt4 key购买 nike

例如,这段代码:

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.GINGERBREAD) {

myCalendarView.setOnDateChangeListener(
new OnDateChangeListener() {

@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Toast.makeText
(
getApplicationContext(), ""+dayOfMonth, 0
).show();
}

}
);

}

给出错误:

Description Resource Path Location Type Call requires API level 11 (current min is 8): android.widget.CalendarView#setOnDateChangeListener example.java /example/src/com/example/example line 20 Android Lint Problem

我明白为什么会在编译时出现此错误。但是有没有办法将源 Java 类标记为仅在某些 API 级别 11 上使用?或者用 define/similar 包围代码块,以便代码仅在 API 级别 11 以上的设备上进行后期绑定(bind)/jitted?实现我想要的最佳解决方案是什么? (即在具有此功能的设备上使用 CalendarView 提供 Activity 。)

最佳答案

我不确定这是否能解决您的问题,

但是您用来检查版本的内容在 API 9 下不起作用(并且您从 API 8 开始支持)。

你应该使用:

if (Build.VERSION.SDK_INT > 9) { 

或者有问题的函数是 API 11,检查“SDK_INT>10”

然后对于 eclipse 上的 lint 错误,按照人们的评论进行操作,禁用 lint 错误或将 @SuppressLint("NewAPI") 或该函数的目标添加到 11。

关于android - 如何只在特定的 API 级别上执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502935/

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