В этой документации "Общение с другими фрагментами" Google сообщает нам, что лучшей практикой для взаимодействия Activity и Fragment является реализация интерфейса. Затем этот интерфейс может вызываться Fragment и выполнять необходимое поведение в Activity.
Но есть и хак способ сделать это. Непосредственно получить действие методом "getActivity()", а затем мы можем использовать все "общедоступные методы" под ним.
Это меня очень смущает. Потому что я не мог придумать ни одного критического недостатка использования хакерского способа сделать это.
Какое преимущество первого подхода пришло мне в голову:
- Я могу ограничить "доступность ресурсов" своей активностью. Но поскольку фрагмент может вызывать «getActivity()», он может фактически получить доступ ко всем «общедоступным» методам в нем. Так что это не может меня убедить.
- Более читаемый и рассказывающий истории в коде. При первом подходе код говорит нам, что «это действие открывает только эту конкретную доступную область для фрагмента». Мы можем узнать «Что внутри фрагмента может помешать действию» напрямую, просто взглянув на код в действии. В противном случае нам нужно будет открыть код в Fragment, чтобы увидеть, что он сделал.
Хорошо, после того, как я резюмировал это, я немного убедился сам. Но, честно говоря, мне очень хочется какой-то другой солидной и обязательной причины для этого. Любая идея или документация будут действительно оценены!!