azerphoenix
@azerphoenix
Java Software Engineer

Почему возникает исключение Attempt to invoke virtual method setArguments() on a null object reference?

Доброго времени суток!
Изучаю android и пытаюсь из одного фрагмента передать информацию в другой.
Реализовал интерфейс:

public interface DataPassListener {
    void passData(String data);
}


В первом фрагменте:
@Override
public void onAttach(@NonNull Context context) {
    super.onAttach(context);

    if(context instanceof DataPassListener) {
        dataPassListener = (DataPassListener) context;
    } else {
        throw new RuntimeException(context.toString() + " must implement dataPassListener");
    }
}


В Activity:
public class UserCreationActivity extends AppCompatActivity implements DataPassListener {

	@Override
    public void passData(String data) {

        Log.d(LOG, "Получили сообщение в UserCreationActivity:  "+ data);

        fragment_2 = (UserCreationActivityFragment_2) this.getSupportFragmentManager().findFragmentById(R.id.secondFragmentUserCreation);

        Bundle bundle = new Bundle();
        bundle.putString("age",data);
        fragment_2.setArguments(bundle);
    }

}


Во втором фрагменте

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    	View rootView = inflater.inflate(R.layout.fragment_2_user_creation, container, false);
    	String age = null;
    	if (getArguments() != null) {
            age = getArguments().getString("age");
        }
        Log.d(LOG, "Возраст  " + age); 
}


Из первого фрагмента в Activity информация передается, а вот при срабатывании setArguments возникает исключение NPE:
java.lang.NullPointerException: Attempt to invoke virtual method 'void info.md7.lfk.fragments.UserCreationActivityFragment_2.setArguments(android.os.Bundle)' on a null object reference


Как устранить это исключение? Заранее благодарю за советы и подсказки.
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Очевидно,
(UserCreationActivityFragment_2) this.getSupportFragmentManager().findFragmentById(R.id.secondFragmentUserCreation);


Возвращает null.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы