Я пытаюсь запустить фрагмент программно. Функция ниже прекрасно работает сама по себе. Проблема в том, что я должен вызывать функцию из другого фрагмента. Вызов из фрагмента в MainActivity работает и не является проблемой.
public void gotoFragment1(){
Fragment1 fragment = new Fragment1();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.nav_host_fragment, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
Если я пытаюсь вызвать функцию из другого фрагмента, приложение вылетает со следующей трассировкой стека:
java.lang.IllegalStateException: FragmentManager has not been attached to a host.
at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1727)
at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:321)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:286)
at com.fewo.info.MainActivity.gotoVeranstaltungen(MainActivity.java:134)
at com.fewo.info.ui.home.HomeFragment$1.onClick(HomeFragment.java:53)
Как я могу изменить фрагмент с помощью этого кода, вызываемого из другого фрагмента?