Ошибка фрагмента Android NullPointerException

Я пытаюсь использовать следующий код, чтобы открыть Fragment это внутри другого фрагмента, но дает мне исключение нулевого указателя без причины.

Fragment newFragment = new SecondFragment(); 
// consider using Java coding conventions (upper char class names!!!)
FragmentTransaction transaction = getFragmentManager().beginTransaction();

// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.menuitem_detail_container, newFragment);
transaction.addToBackStack(null);

// Commit the transaction
transaction.commit(); 

Этот кусок кода находится внутри основного onItemClickListener внутри onCreateView метод внутри фрагмента (android.support.v4.app.Fragment)

Любые идеи о том, что я могу делать не так?

3 ответа

На getFragmentManager вы должны использовать getActivity().getSupportFragmentManager() или же getChildFragmentManager() вместо getFragmentManager. Если NPE выбрасывается в транзакции.replace(), вы должны убедиться, что вы заменяете раскладку, например, на

RelativeLayout rl = (RelativeLayout) getActivity().findViewById(R.id.menuitem_detail_container);
transaction.replace(rl.getId(), newFragment);

Выше приведен только пример, потому что я не знаю ваш кодекс, но вы можете получить идею. В этом примере я предполагаю, что используемый вами макет контейнера имеет то же имя в XML-коде действий.

Просто убедитесь, что вы не пытаетесь заменить что-то, возвращающее ноль. Если вы используете контейнер из вашего onCreate, попробуйте войти в него, чтобы узнать, является ли он пустым.

Если это не помогает, пожалуйста, опубликуйте свой вывод Logcat.

Ищите мою транзакцию.

action.replace(R.id.provas_view, new ListaProvasFragment(), ListaProvasFragment.class.getCanonicalName());

Когда вы используете вложенные фрагменты, вам нужно получить getChildFragmentManager() для внутренних фрагментов.

Также убедитесь, что вы импортируете из библиотеки поддержки и FragmentManager, и ChildFragmentManager.

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