#android #actionbarsherlock
#Android #actionbarsherlock
Вопрос:
У меня есть этот код в ActionBarSherlock
@Override
public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event)
{
if (super.onRequestSendAccessibilityEvent(child, event)) {
// Add a record for ourselves as well.
AccessibilityEvent record = AccessibilityEvent.obtain();
onInitializeAccessibilityEvent(record);
// Populate with the text of the requesting child.
child.dispatchPopulateAccessibilityEvent(record);
event.appendRecord(record);
return true;
}
return false;
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setScrollable(isScrollableForAccessibility());
View selectedView = getSelectedView();
if (selectedView != null) {
info.setEnabled(selectedView.isEnabled());
}
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
event.setScrollable(isScrollableForAccessibility());
View selectedView = getSelectedView();
if (selectedView != null) {
event.setEnabled(selectedView.isEnabled());
}
event.setCurrentItemIndex(getSelectedItemPosition());
event.setFromIndex(getFirstVisiblePosition());
event.setToIndex(getLastVisiblePosition());
event.setItemCount(getCount());
}
И я получаю ошибки компиляции в super.onInitializeAccessibilityEvent(событие); и несколько других методов.
Кто-нибудь знает, почему это происходит?
Спасибо!
Комментарии:
1. И ошибки есть… что именно?
2. Ошибка заключается в том, что для вызовов требуется уровень api 14, и я установил его на 8. Но это сбивает с толку, потому что я явно установил мое значение 4.4.2
Ответ №1:
Жалоба заключается в том, что для вашего android:minSdkVersion
значения установлено значение 8, и этот код ссылается на классы, методы или поля, которые не были добавлены до уровня API 14.
Если вы пытаетесь изменить ActionBarSherlock и скомпилировать его самостоятельно, вы можете либо добавить соответствующий код для решения этой проблемы (проверка Build.VERSION.SDK_INT
), либо добавить @TargetApi()
аннотацию, чтобы остановить жалобы Lint.
Комментарии:
1. Спасибо. Что произойдет, если я использую ActionBarSherlock и оставлю свой minSdk на 8? Произойдет ли сбой приложения у пользователей с Android версии 8 на своих устройствах?
2. @Genadinik: Ну, пока этого не произошло. Все это обратные вызовы, которые, вероятно, просто не вызываются в более старых версиях Android и, следовательно, безопасны. Однако Lint не отличает эти случаи ни от чего другого, поэтому Lint визжит.