Сотовое приложение ActionBar & Phone - PullRequest
1 голос
/ 02 июля 2011

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

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

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

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

Ответы [ 3 ]

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

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

1 голос
/ 02 июля 2011

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

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

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

0 голосов
/ 03 июля 2011

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

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

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

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

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

...