Как прикрепить интерфейс к фрагменту, Kotlin, Android - PullRequest
1 голос
/ 28 мая 2020

Я хочу прикрепить интерфейс, но я знаю только один способ сделать это:

override fun onAttach(context: Context) {
        super.onAttach(context)

        try {
            myInterface=context as MyInterface
        }catch (e: Exception){
            Log.d("myLog",e.message)
        }
    }

Но в этом случае интерфейс можно использовать только в основном действии. И мне нужно использовать его во ViewModel. Вопрос: как это можно реализовать? Заранее спасибо.

1 Ответ

1 голос
/ 28 мая 2020

если вы имеете в виду экземпляр интерфейса в Activity, вы можете поместить метод установки внутри viewModel. Затем вы можете использовать его свободно.

В viewModel:

class MyViewModel: ViewModel(){
    private var mInterface: MyInterface? = null 

    fun setInterface(myInt: MyInterface){
        mInterface = myInt
    }
}

в действии:

override fun onCreate(...){
     viewModel.setInterface(this)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...