Объект 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()