Android kotlin覆盖onCreateView()方法内部的接口方法

时间:2017-06-27 00:50:32

标签: java android kotlin kotlin-extension

我是Kotlin的新手。我有一个包含两个方法定义的接口:

fun onSuccess(result: T)
fun onFailure(e: Exception)

现在,在我的片段中,我实现了这个接口,并希望在内部使用这些方法:

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
     ..................
     ..................
     override fun onSuccess(result: String) {}
     override fun onFailure(e: Exception) {}
}

在java中我们可以使用@override,但在这里我收到错误'修饰符'覆盖'不适用于本地功能'。我在kotlin工作了2-3天,我喜欢它。但有些时候小问题需要一些时间来调试。

1 个答案:

答案 0 :(得分:5)

您需要在片段上实现接口,并将重写方法移到onCreateView方法之外。

类MyFragment:Fragment,MyInterface

您无法覆盖方法内的方法。另一个选择是你可以创建一个在下面演示的对象表达式

window.addMouseListener(object : MouseAdapter() {
    override fun mouseClicked(e: MouseEvent) {
        // ...
    }

    override fun mouseEntered(e: MouseEvent) {
        // ...
    }
})

https://kotlinlang.org/docs/reference/object-declarations.html