将接口从片段传递到kotlin中的活动

Posted

技术标签:

【中文标题】将接口从片段传递到kotlin中的活动【英文标题】:Pass interface from fragment to activity in kotlin 【发布时间】:2021-03-05 08:28:59 【问题描述】:

我想将我的界面对象从我的片段传递到我在 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?) 

    

现在我已经在我的片段中实现了它,并且我想通过意图将相同的引用传递给我的活动。如何在 Kotlin 中实现这一点?

非常感谢任何帮助。 TIA

【问题讨论】:

不提实现,你想实现什么? 我还不清楚。从用户的角度来看,您希望发生什么? 你是否为Parcelable实现了必要的方法? 【参考方案1】:

一种可能且更简单的解决方案是从Serializable扩展您的界面

interface MyInterface : Serializable 
    fun someMethod()

并有目的地传递它。

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

【讨论】:

我尝试过这种方式,但是每次在活动中从意图额外分配它后,接口obj都是空的。

以上是关于将接口从片段传递到kotlin中的活动的主要内容,如果未能解决你的问题,请参考以下文章

将一个 mutableList 从活动 A 传递到 Kotlin 中的活动 B。

如何将数据从 Intent 传递到 Fragment

在 Kotlin 中将值从 Activity 传递到 Fragment

Firebase 到 Kotlin 片段

使用导航从工具栏菜单项单击在片段之间传递数据 - Kotlin

从片段中的按钮单击打开导航抽屉(Kotlin)