SolidlSnake
@SolidlSnake
Ваш дружелюбный сосед

Как обойти NullPointerException при работе с ActionBar?

Приложения разрабатываются для API >= 15.
Как activity используются AppCompatActivity, фрагменты обычные.

При работе с ActionBar'ом (будь то установка текста, кнопки «назад», иконки, etc.) вечно вылезает предупреждение о возможном NullPointerException, а при запуске приложения оно крашится.

Не работает ни getActionBar(), ни getSupportActionBar(), предупреждение вылезает в обоих случаях.

Обошел кучу вопросов по теме и нормального решения так и не нашлось. Были всякие debug версии, где при помощи toolbar'а и setSupportActionBar() что-то выходило, но по итогу все-равно приходилось вылавливать NullPointerException, что совсем не радует.

Даже, чтобы просто добавить иконку пришлось городить отдельные стили для ActionBar'а, что никак не удобно, при существовании специальных методов для этого.

Возможно кто-то знает рабочую формулу для решения проблемы?
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 2
Ewintory
@Ewintory
Java / Android developer
Скорее всего в файле styles.xml ваша основная тема выглядит примерно так:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

Ключивой момент это NoActionBar. Тут вам нужно использовать Toolbar, самому размещать его в layout-ах, и в Activity вызывать метод setSupportActionBar(toolbar)
Ответ написан
@IceJOKER
Web/Android developer
Может у вас установлена NoActionBar тема?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы