Выполнение следующего (примечание: цель> 3.0)
ActionBar actionBar = getActionBar();
на Android с версией <3.0 (SDK 11) приводит к <code>NoSuchMethodError.
Есть несколько способов обойти это, включая рефлексию и ленивую загрузку класса. Тем не менее, похоже, что следующее работает на всех протестированных мной устройствах (2.3.6, 3.0, 3.1, 4.0):
boolean hasActionBar = android.os.Build.VERSION.SDK_INT >= 11;
if (hasActionBar) {
ActionBar actionBar = getActionBar();
} else {
// create custom actionbar
}
Обратите внимание, что параметр SDK_INT
равен static final
, поэтому, похоже, это работает.
Это правильный способ борьбы с совместимостью?