Получить экземпляр фрагмента в действии

Я добавил фрагмент в действие, например

getSupportFragmentManager().beginTransaction()
                    .add(R.id.container,new MyFragment).commit();

где container - это идентификатор FrameLayout

 <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

Теперь, как мне получить экземпляр Фрагмент в действии вот так

Я должен вызвать метод Fragment A после получения результата от Fragment B.

Я создал интерфейс во фрагменте B и реализовал его в Activity. Теперь мне нужно передать результат фрагменту A. Я не могу получить экземпляр фрагмента A.

Я не хочу создавать частный экземпляр фрагмента A в Activity и вызывать его метод.


person AndroidGeek    schedule 31.03.2016    source источник
comment
вы можете сделать этот метод статическим   -  person Vivek Mishra    schedule 31.03.2016
comment
Почему вы хотите получить экземпляр фрагмента? лучше сделать один интерфейс и метод переопределения в Activity и вызвать его из фрагмента. Таким образом можно получить все данные из фрагмента A в вашей деятельности.   -  person M D    schedule 31.03.2016
comment
используйте этот getActivity (). getSupportFragmentManager (). beginTransaction () .add (R.id.container, new MyFragment) .commit ();   -  person Jigar    schedule 31.03.2016
comment
Используйте метод add (int containerViewId, фрагмент фрагмента, тег String) FragmentTransaction и метод findFragmentByTag (String) FragmentManager.   -  person random    schedule 31.03.2016


Ответы (2)


Попробуй это

getSupportFragmentManager().beginTransaction()
                .add(R.id.container,new MyFragment(),"MyFragment").commit();

получить фрагмент

MyFragment frag = ((MyFragment) getSupportFragmentManager().findFragmentByTag("MyFragment"));
person arun    schedule 31.03.2016

Следуя этой ссылке:

Вся связь от фрагмента к фрагменту осуществляется через связанное действие. Два фрагмента никогда не должны связываться напрямую.

Таким образом, я бы рекомендовал:

  1. Чтобы определить interface в Fragment B.
  2. Реализуйте interface в activity.
  3. Затем, в конце концов, доставьте сообщение Fragment A.

Пример кода и справочник.

person Rohit Arya    schedule 31.03.2016
comment
Шаг (3) не следует из шагов (1) и (2). - person Joe Lapp; 22.05.2019