Как определить, нажал ли пользователь кнопку «Назад» и переместился ли он назад в приложении внутри фрагмента в Kotlin? - PullRequest
0 голосов
/ 03 мая 2020

Я использую компонент навигации, и я хочу определить, когда пользователь переходит назад от фрагмента B -> A, поэтому я могу сохранить заметку в таблице базы данных комнаты, созданной во фрагменте B, прежде чем перейти обратно к фрагменту A (я делаю приложение для заметок, и я хочу сохранять заметки, как это делает приложение Google Keep Note).

1 Ответ

0 голосов
/ 03 мая 2020

Это должно быть здесь

Существует несколько альтернатив модели общего представления.

  1. fun navigateBackWithResult (result: Bundle), как описано здесь https://medium.com/google-developer-experts/using-navigation-architecture-component-in-a-large-banking-app-ac84936a42c2

  2. Создать обратный вызов.

ResultCallback.kt

interface ResultCallback : Serializable {
    fun setResult(result: Result)
}

Передать этот обратный вызов как аргумент (обратите внимание, что он должен реализовывать Serializable, а интерфейс должен быть объявлен в своем собственном файле.)

<argument android:name="callback"
                  app:argType="com.yourpackage.to.ResultCallback"/>

Сделать framgent A реализовать ResultCallback, фрагмент B будет получать аргументы и передавать данные обратно через них , args.callback.setResult (x)

Оригинальный пост здесь Оригинальный пост здесь

...