Передача интерфейса из фрагмента в действие в kotlin

#android #kotlin #android-activity #interface #fragment

#Android #kotlin #android-активность #интерфейс #фрагмент

Вопрос:

Я хочу передать свой объект интерфейса из моего фрагмента в мое новое действие в Kotlin. Я пытался отправить в качестве параметров конструктора, которые не работают. Я попытался отправить локальную трансляцию … не работает. Ниже приведен код.

Myactivity.kt

 class Myactivity: Activity{
    // get interface ref object here
    interface Myinterface: Parcelable {
        fun someMethod(true:Boolean?)
    }
}
 

Myfragment.kt

 class Myfragment: Fragment(), Myinterface{
    val interface: Myinterface
    val intent = Intent(activity,Myactivity::class.java)
    intent.putextra // or   putParcelableExtra??? // pass interface obj

    override fun someMethod(true:Boolean?) {

    }
}
 

Теперь я реализовал его в своем фрагменте и ту же ссылку, которую я хочу передать в свою активность обратно через intent. Как я могу добиться этого в Kotlin?

Любая помощь очень ценится. TIA

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

1. Не говоря уже о реализации, чего вы пытаетесь достичь?

2. Мне пока не ясно. С точки зрения пользователя, что вы хотите, чтобы произошло?

3. Вы внедрили необходимые методы для Parcelable ?

Ответ №1:

Одним из возможных и более простых решений является расширение вашего интерфейса с Serializable

 interface MyInterface : Serializable {
    fun someMethod()
}
 

и передать его с намерением.

 val intent = Intent(activity, Myactivity::class.java).apply {
    putExtra("interface", this@Myfragment)
}
 

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

1. Я пытался таким образом, но каждый раз в activity после назначения его из intent extra объект интерфейса равен нулю.