У меня странная проблема. Я делаю приложение с targetdk 13.
В методе onCreate моего основного действия я вызываю getActionBar()
, чтобы настроить панель действий. Это отлично работает при работе в эмуляторе Android 3.2, но при использовании Android 3.0 и 3.1 метод getActionBar()
возвращает значение null.
Я считаю это чрезвычайно странным и не вижу причин, по которым это могло бы происходить. Это ошибка эмуляторов или мне нужно что-то сделать, чтобы убедиться, что в моем приложении есть панель действий?
РЕШЕНИЕ: Думаю, я нашел решение этой проблемы. Я не использовал setContentView для установки макета для действия. Вместо этого я использовал fragmentTransaction.add(android.R.id.content, mFragment, mTag)
, чтобы добавить фрагмент к активности. Это нормально работало в 3.2, но в более ранних версиях с сотами панель действий, по-видимому, не была установлена, если вы не используете setContentView в методе onCreate()
. Поэтому я исправил это, используя метод setContentView()
в моем методе onCreate()
и просто снабдив его макетом, содержащим пустой FrameLayout. Я все еще могу использовать метод fragmentTransaction.add(android.R.id.content, mFragment, mTag)
так же, как и раньше.
Это не самое красивое решение, но оно работает.