Объект ActionBar возвращается как ноль

Я получаю объект actionBar ниже как ноль, и, следовательно, NullPointerException при выполнении actionBar.setDisplayHomeAsUpEnabled(true), Ниже приведен мой код, который вызывается из onResume фрагмента.

ActionBar actionBar = getActivity().getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

Followwing - тема, которую я применяю к активности в onCreate:

 <style name="MyActionBarTheme" parent="Theme.AppCompat.Light">

        <item name="actionBarStyle">@style/MyActionBar</item>
        <item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
        <item name="actionMenuTextColor">@color/green</item>
        <item name="colorPrimary">@color/green</item>
        <item name="colorPrimaryDark">@color/greenD</item>

    </style>

Мое приложение имеет минимальный уровень API, равный 14. Пожалуйста, помогите мне, объясните, почему ActionBar объект возвращен как ноль.

РЕДАКТИРОВАТЬ: getActivity().getActionBar(); возвращает ноль в Fragment,

2 ответа

Решение

Вам нужно использовать getSupportActionBar() когда вы используете AppCompatActivity вместо getActionBar(),

РЕДАКТИРОВАТЬ

Когда вы используете AppCompat тема, которую вы должны использовать AppCompatActivity,

Пример кода как получить ActionBar:

Activity activity = getActivity();
if(activity != null && activity instanceof AppCompatActivity) {
   AppCompatAcitivyt appCompatActivity = (AppCompatActivity) activity;
   ActionBar actionBar = appCompatActivity.getSupportActionBar();
   //your code
}

Если вы используете appCompat, вам нужно использовать getSupportActionBar() вместо getActionBar()

Другие вопросы по тегам