Как взаимодействовать между двумя дочерними фрагментами внутри вложенного фрагмента
Я могу легко обмениваться данными между двумя fragment
активности с помощью обратного вызова interface
. Следуя этому пути, я реализовал интерфейс в ParentFragment
для связи.
Но в случае активности я использовал -
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallback = (OnHeadlineSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
И в этом случае я использую mCallback = (OnHeadlineSelectedListener) getParentFragment();
вместо mCallback = (OnHeadlineSelectedListener) activity;
. Все работает хорошо. Этот подход в порядке? Или я должен сделать это в другой поток вместо onAttach()
?
Ответы
Ответ 1
Литой задачей является обеспечение определенного объекта экземпляром класса, реализующего данный интерфейс (в данном случае OnHeadlineSelectedListener
). На данный момент не имеет значения, каков тип объекта - это активность, фрагмент или что-то еще. Пока он реализует необходимый вам интерфейс, все в порядке.