Передаю данные из фаргмента в активити. При попытке открыть фрагмент ошибка о вызове виртуального метода. Подскажите, где я мог ошибиться

Фрагмент принадлежит другому активити.

Активити.

        //передача данных в фаргмент
    Bundle bundle = new Bundle();
    String test = "TEEEEST";
    bundle.putString("title", test);
    m_recept_frag fragment = new m_recept_frag();
    fragment.setArguments(bundle);

Фрагмент.

public class m_recept_frag extends Fragment implements View.OnClickListener {

public m_recept_frag(){

}
public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {
    m_recept_view mreceptview = new ViewModelProvider(this).get(m_recept_view.class);
    View root = inflater.inflate(R.layout.m_recept, container, false);
    //kod
    Button spisok_rec = root.findViewById(R.id.Spis_rec);
    spisok_rec.setOnClickListener(this);
    Button add_rec = root.findViewById(R.id.Add_rec);
    add_rec.setOnClickListener(this);
    Button name_rec1 = root.findViewById(R.id.name_rec1);
    name_rec1.setOnClickListener(this);
    Button name_rec2 = root.findViewById(R.id.name_rec2);
    name_rec2.setOnClickListener(this);
    Button name_rec3 = root.findViewById(R.id.name_rec3);
    name_rec3.setOnClickListener(this);
    Button name_rec4 = root.findViewById(R.id.name_rec4);
    name_rec4.setOnClickListener(this);

    //Приём данных
    String title = this.getArguments().getString("title");
    name_rec1.setText(title);

    return root;

}

Ошибка.

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.kil_kniga, PID: 9665
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.BaseBundle.getString(java.lang.String)' on a null object reference
    at com.example.kil_kniga.ui.m_recept.m_recept_frag.onCreateView(m_recept_frag.java:41)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
    at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6119)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Ответы (1 шт):

Автор решения: beeline09

Надо получать данные из Bundle в OnCreate и хранить например в приватной переменной. Потом обращаться к ней в методе OnViewCreated. В OnCreateView вьюха еще не создана - она только создается и может произойти что угодно, в т.ч. и то, что у Вас.

→ Ссылка