Страницы

Поиск по вопросам

вторник, 2 апреля 2019 г.

Вызов из фрагмента метода активности

У меня активность содержит фрагмент. При нажатии кнопки в этом фрагменте, у меня должны измениться состояния View в макете активности. В активности у меня есть готовый метод, который будет делать это. Но как мне это реализовать, чтобы при нажатии по этой кнопки, вызывался бы метод активности?


Ответ

Объявляешь интерфейс с методами которые тебе необходимо выполнять в Activity:
interface FragmentActions { void doSomething(); }
Имплементируешь интерфейс в Activity:
class MainActivity extend Activity implement FragmentActions { override void doSomething(){ ... Вызываешь свои методы реализованные в активности } }
Вызываешь метод во фрагменте:
class MainFragment extend Fragment { private FragmentActions listener; override void onAttach(Context context){ super.onAttach(context) listener = (FragmentActions)context; } override void onViewCreated(...){ btn.setOnClickListener(()->listener.doSomething()) } }

Комментариев нет:

Отправить комментарий