#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 объект интерфейса равен нулю.