В моем приложении у меня есть только одно действие (которое расширяет ActionBarActivity) и различные фрагменты (которые расширяют фрагмент). Когда пользователь нажимает на пункт меню, приложение меняет фрагмент. В этот момент я хочу изменить название и цвет фона ActionBar. Когда я пытаюсь ActionBar actionBar = getActivity().getActionBar();
У меня есть пустое исключение.Как получить доступ к ActionBar из фрагмента на Android
Я использую библиотеку поддержки, и по этой операции я успешно использую android.support.v7.app.ActionBar actionBar = getSupportActionBar();
.
На фрагменте:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.material_cadastro, container, false);
viewHolder = new MaterialViewHolder(view);
ActionBar actionBar = getActivity().getActionBar();
actionBar.setTitle(R.string.inserir_material);
return view;
}
отладки я получил, что активность возвращается в порядке, но ActionBar равно нулю:
getActivity() = {br.com.americocarelli.vendasfacil.ui.MenuPrinci[email protected]}
getActivity().getActionBar() = null
Вы используете библиотеку поддержки? – Josef
У ваших фрагментов есть подходящие идентификаторы или теги? Я считаю, вам нужно установить либо тег, либо ID каждого фрагмента, чтобы getActivity() работал правильно. – BadCash
Отправьте свой код. –