Всем привет!
Мы тут делали вот этот проект и решили использовать ActionBar. И вроде бы написали весь код, вроде все хорошо, однако при тестировании на устройстве с Android 2.х у нас возникли некоторые неприятности: несмотря на использование в проекте библиотеки поддержки (та, которая Android Support Library), ActionBar работает только на устройствах с новым API 🙁 То есть начиная с 11 версии кажется (если не прав, поправьте). Итак, суть: статья о том, что делать если ActionBar не работает на Android 2.х?
Предварительный итог — печальный. Почитал я значит документацию второй раз (в смысле внимательно прочитал, ан не по диагонали) и понял, что без сторонних компонентов нам не обойтись.
Выбор пал на ActionBarSherlock — как на наиболее часто используемый судя по результатам поиска в гугле. Давайте посмотрим, что такое ActionBarSherlock — на сайте разработчиков на главной странице написано, что это обертка над Android Support Library, которая позволяет использовать паттерн ActionBar на всех платформах начиная со 2-й. При этом на старых версиях библиотека использует свой код, а на тех, где ActionBar поддерживается — используется ActionBar из системы.
Итак приступим. Первым делом скачиваем саму библиотеку. Вот по этой ссылочке вы его можете найти. Или скачать на GitHub. Распаковываем архив видим примерно это:
Теперь идем в Eclipse. Проверяем что у нас установлен Android SDK версии 14 (именно под ним собирается ABSherlock) Нажимаем File -> New -> Other и видим вот это:
Здесь выбираем категорию Android и Выбираем в ней пункт «Android project from Existing Code». Видим следующее окошко:
В этом окошке нажимаем как водится кнопку Browse и выбираем скачанную и разархивированную нами папку. В результате эклипс найдет нам целую кучу проектов для импорта, мы с вами выберем тот, что называется actionbarsherlock. Нажимаем кнопку Finish — вуаля, мы с вами имеем импортированный проект в эклипсе. Обратите внимание, что этот проект является библиотекой. То есть вы можете подключить его к вашему приложению!
Едем дальше. Создаем новый проект. Я назвал его ABSerlockTest (Ну простите, забыл буковку r). Но вы можете не повторять моих ошибок :).
Итак, выбираем наш новосозданный проект и открываем его свойства. Выбираем слева «Android» и видим примерно это:
Здесь нажимаем кнопочку «Add» и в появившемся окне выбираем actionbarsherlock. В итоге получится как на картинке и мы смело нажимаем «OK». Итак, мы вроде как подцепили к нашему проекту библиотеку ActionBarSherlock. Но это еще не все. Нажав на «ОК» мы увидим в окне консоли целое море ошибок, примерно так:
Смысл в том, что эклипс нашел в нашем проекте две библиотеки поддержки. Первая — та что в проекте с actionbarsherlock а вторая которая в нашем с вами проекте. Собственно исправить эти ошибки достаточно легко 🙂 для этого в нашем проекте удаляем из папки libs библиотеку поддержки android-support-v4.jar.
На сегодня пожалуй хватит 🙂 Если что — пишите, комментируйте, ну и всем хорошего дня. В следующий раз продолжим!