Na przykład, ten kod:Jak tylko wykonanie kodu na pewnym poziomie 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();
}
}
);
}
daje błąd:
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
rozumiem, dlaczego ten błąd czasu kompilacji. Ale czy jest jakiś sposób, aby oznaczyć źródłową klasę Java, która będzie używana tylko na pewnym poziomie API-11? Lub otaczaj bloki kodu definicją/podobnym, więc kod jest późno związany/zignorowany tylko na urządzeniach powyżej poziomu API-11? Jakie jest najlepsze rozwiązanie, aby osiągnąć to, czego chcę? (Który jest dostarczenie aktywności z CalendarView na urządzeniach capabile nim.)
To, co robisz, jest w porządku. –
Niestety pojawia się błąd opisany podczas kompilowania w Eclipse. (To znaczy, że mogę skompilować i przetestować kod) – Tom
To jest błąd lint. Możesz wyłączyć to w preferencjach. Twoja aplikacja będzie nadal działać poprawnie. –