Сотовое приложение ActionBar & Phone

1

Я пишу свое первое приложение в течение нескольких недель, и сегодня я понял, что если мы хотим разработать для сотовых и обычных телефонов, мы должны упаковать их вместе как одно приложение, а не как два приложения с разными целями.

Поэтому я начал новый проект в Eclipse с целевым значением 2.1 (уровень SDK 7) и скопировал поверх своих Java, XML и других ресурсов из старого (проект, ориентированный на Honeycomb), на новый (ориентированный на телефон + планшет) проект.

Все шло хорошо, пока я не зацепил код ActionBar, в частности, когда я установил значок приложения, чтобы перейти к основному действию - ему почему-то не нравится.

Как мы должны писать одно приложение для обеих платформ? Я думал, что это будет так же просто, как две версии макета и несколько настроек MINOR на Java.

Теги:
android-3.0-honeycomb

3 ответа

0
Лучший ответ

Я посмотрел на новый (ориентированный на телефон + планшет) проект, чтобы увидеть, не было ли чего-то, что я пропустил, что вызовет проблему.

Оказывается, в androidmanifest.xml у меня были неправильные уровни targetdk и minsdk.

Я изменил их на правильные:

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="11" />

Это изменение решило проблему. Спасибо за помощь.

2

Лучший пример, который я нашел до сих пор, - это расписание Google IO 2011, которое доступно на http://code.google.com/p/iosched/. Проект был специально создан для этой цели - 1 apk предлагает версию приложения, подходящую для телефона, а другую для планшетов. В зависимости от того, как ваше приложение структурировано, с некоторой настройкой (основной или второстепенной в зависимости от вашей перспективы) приложение может делать практически что угодно для двух платформ устройства.

1

ActionBar был впервые представлен в Android 3.0

Если вы хотите, чтобы ваше приложение запускалось с другими версиями, вам нужно будет проверить ActionBar доступен ли ActionBar (а затем запустить конкретный код), а если нет, вам придется придумать другое решение (возможно, ваша собственная реализация).

Build.VERSION можно использовать для определения версии Android, на которой работает приложение.

  • 0
    В частности, вам необходимо изолировать ссылки кода, специфичные для Honeycomb, на класс, который вы загружаете только в Honeycomb, в противном случае вы получите сбой VerifyError во время выполнения. Вот пример проекта, демонстрирующего это для размещения пользовательского View в панели действий: github.com/commonsguy/cw-android/tree/master/Menus/ActionBarBC

Ещё вопросы

Сообщество Overcoder
Наверх
Меню