В Android, доступность объектов из родительского компонента (например, фрагмента или представления) в Activity обеспечивается через ссылки на эти объекты, переданные или полученные различными способами.
Основные способы:
- Прямое получение ссылки через методы Activity:
findViewById() для представлений.
findFragmentById() или findFragmentByTag() для фрагментов.
- Ссылки на менеджеры (например,
getSupportFragmentManager(), getSystemService()).
- Передача ссылки при создании: Родительский объект может передать ссылку на себя или свои компоненты дочернему объекту при его создании (например, через конструктор, фабричный метод или аргументы).
- Callback-интерфейсы (паттерн Listener): Дочерний компонент вызывает методы предопределенного интерфейса, который реализует Activity. Activity подписывается на эти вызовы.
- Связывание данных (Data Binding): Позволяет связать данные и логику представления с Activity/фрагментом, предоставляя доступ к элементам макета.
- ViewModel (архитектурный компонент): ViewModel может содержать данные или ссылки, доступные как Activity, так и связанным с ней компонентам.
Пример с findViewById():
kotlin
Пример с Callback-интерфейсом:
kotlin