Видимо, так и происходит:
Начиная с уровня API 1, платформа Android уже имеет isItemChecked
на ListView
.
Однако в выпуске API Level 11 Google переместил определение isItemChecked
на AbsListView
, который является суперклассом ListView
. Это изменение не мешает существующему коду (предназначенному для компиляции на уровне до API уровня 11) компилироваться на уровне API 11, но сгенерированный файл .class фактически ищет isItemChecked
на AbsListView
, которого не существует на предварительном Устройства API уровня 11.
В отчете о различиях API указано:
boolean isItemChecked(int)
Метод был определен локально, но теперь унаследован от AbsListView
.
Это опасная ловушка, потому что совместимость вообще не может быть проверена во время компиляции. Вы должны помнить, чтобы использовать его как ListView
, а не AbsListView
. Может быть, нам следует избегать AbsListView
altogther.