例如,下面的代碼:爲什麼我得到這個錯誤編譯時如何只在特定的API級別上執行代碼
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
我的理解:
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();
}
}
);
}
給出錯誤。但是有沒有什麼方法可以將源Java類標記爲僅在某些API級別上使用?或者使用定義/類似的環繞代碼塊,所以代碼僅在API level-11以上的設備上延遲綁定/抖動?什麼是最好的解決方案來實現我想要的? (這是提供的IT設備capabile與CalendarView的活動。)
你在做什麼很好。 – 2013-03-19 14:59:54
不幸的是,我在Eclipse中編譯時遇到了錯誤。 (意思是我可以編譯和測試代碼) – Tom 2013-03-19 15:00:48
這是一個lint錯誤。您可以在首選項中禁用它。你的應用程序仍然運行良好。 – 2013-03-19 15:01:20