Ответ 1
Хорошим решением может быть использование SAME OnFragmentInteractionListener для всех фрагментов и использование одного параметра каждого метода прослушивателя (например, параметра TAG) для идентификации того, какой фрагмент отправил действие.
Вот пример:
Создайте новый класс, и каждый фрагмент использует этот класс
OnFragmentInteractionListener.java
public interface OnFragmentInteractionListener {
public void onFragmentMessage(String TAG, Object data);
}
В вашей деятельности:
public void onFragmentMessage(String TAG, Object data){
if (TAG.equals("TAGFragment1")){
//Do something with 'data' that comes from fragment1
}
else if (TAG.equals("TAGFragment2")){
//Do something with 'data' that comes from fragment2
}
...
}
Вы можете использовать тип объекта для передачи всех типов данных, которые вы хотите (тогда в каждом случае вы должны преобразовать объект в необходимый тип).
Используя этот способ, обслуживание проще, чем у 6 разных слушателей и метод для каждого типа данных, которые вы хотите передать.
Надеюсь, что это поможет.