getActionBar () возвращает null

У меня странная проблема. Я создаю приложение с помощью 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) так же, как и раньше.

Это не самое красивое исправление, но оно работает.

173
задан Christian Skogsberg 2 January 2012 в 18:23
поделиться