У меня активность содержит фрагмент. При нажатии кнопки в этом фрагменте, у меня должны измениться состояния 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())
}
}
Комментариев нет:
Отправить комментарий