Как выполнить код только на определенном уровне API
например, этот код:
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();
}
}
);
}
выдает ошибку:
описание путь к ресурсу тип местоположения вызов требует уровня API 11 (текущая минута - 8): андроид.штучка.CalendarView#setOnDateChangeListener пример.Ява /пример/ГРЦ/ком/пример/пример 20 Проблема С Корпией Android
Я понимаю, почему я получаю эту ошибку времени компиляции. Но есть ли способ отметить исходный класс Java, который будет использоваться только на определенных Уровень API-11? Или блоки объемного кода с define / similar, поэтому код поздно привязан / jitted только на устройствах выше уровня API-11? Какое решение лучше всего для достижения того, чего я хочу? (Который должен предоставить действие с CalendarView на устройствах capabile этого.)
1 ответов
Я не уверен, что это решит вашу проблему,
но то, что вы используете для проверки версии, не работает под API 9 (и вы поддерживаете с API 8).
вы должны использовать:
if (Build.VERSION.SDK_INT > 9) {
или как проблемная функция API 11, проверьте "SDK_INT>10"
затем для ошибок lint в eclipse сделайте, как люди комментируют, отключите ошибки lint или добавьте @SuppressLint("NewAPi") или цель к этой функции в 11.