Панель действий Android и проект ввода-вывода - PullRequest
1 голос
/ 17 июля 2011

Я читал Использование панели действий и там написано: «... если вы хотите использовать API панели действий, например, для добавления вкладок или изменения стилей панели действий, вам нужно установить android: minSdkVersion в '11', чтобы вы могли получить доступ к классу ActionBar. "Но в проекте I / O Манифест имеет «7» как minSdkVersion.Как они могут делать темы и вкладки?У меня проблемы с тем, что они делают.

Спасибо

1 Ответ

2 голосов
/ 17 июля 2011

Я думаю, что важный код для просмотра находится в ActivityHelper и ActivityHelperHoneycomb . По сути, они устанавливают android:targetSdkVersion="11" и android:minSdkVersion="7", а затем выборочно вызывают новые API-интерфейсы ActionBar в Honeycomb (или более поздних версиях) и их собственную предустановленную реализацию Honeycomb.

Если у вас еще нет штрих-кода действия для предварительной соты, есть хороший проект под названием ActionBarSherlock , который позволяет просто использовать API-интерфейс ActionBar и заставить его работать до предварительной соты (просто измените некоторый импорт).

ПРИМЕЧАНИЕ: Если вы решили использовать ActionBarSherlock и обновили свою среду для использования недавно выпущенного кода API уровня 13r1 или 12r2, обязательно используйте версию 3.0.3 или выше (дополнительная информация здесь ).

РЕДАКТИРОВАТЬ: Немного больше информации, чтобы лучше ответить на ваш вопрос. Установка android:targetSdkVersion="11" достаточна, чтобы дать вам доступ к классу ActionBar. Установка android:targetSdkVersion="7" позволяет приложению запускаться на устройствах с предварительным сотовым наполнением, но вызов с них кода ActionBar приведет к NoClassDefFoundError (или, возможно, NoSuchMethodError?).

Чтобы избежать этого, они используют ActivityHelper для уровней API <11 и <code>ActivityHelperHoneycomb на уровнях API> = 11. ActivityHelper # createInstance (Activity) - это место, где они решают, какой использовать.

...