例如,这段代码:
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();
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
给出错误:
说明资源路径位置类型调用需要API级别11(当前最小值为8):android.widget.CalendarView #setOnDateChangeListener example.java/example/src/com/example/example line 20 Android Lint问题
我理解为什么我在编译时遇到这个错误.但有没有办法将源Java类标记为仅用于某个API级别-11?或者使用定义/类似的环绕代码块,以便代码仅在API级别11以上的设备上进行后期绑定/ jitted?达到我想要的最佳解决方案是什么?(这是为了在设备上提供CalendarView的活动.)
Dar*_*rd5 27
我不确定这是否能解决你的问题,
但是您用来检查版本的内容在API 9下无效(并且您自API 8以来一直在支持).
你应该使用:
if (Build.VERSION.SDK_INT > 9) {
Run Code Online (Sandbox Code Playgroud)
或者有问题的功能是API 11,检查"SDK_INT> 10"
然后对于eclipse中的lint错误,按照人们注释,禁用lint错误或将@SuppressLint("NewAPi")或目标添加到该函数11.
| 归档时间: |
|
| 查看次数: |
12662 次 |
| 最近记录: |