简体   繁体   中英

Android kotlin overriding interface methods inside onCreateView() method

I am new to Kotlin. I have an interface containing two method definitions:

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

Now, in my fragment I have implemented this interface and want to use these methods inside as:

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

In java we can use with @override but here I am getting the error 'Modifier 'override' is not applicable to local function'. I am working in kotlin for last 2-3 days and I love it. But some time small issues taking some time to debug.

You need to implement the interface on your fragment and move the overriding methods outside your onCreateView method.

class MyFragment : Fragment, MyInterface

You can't override methods inside a method. Another option is you can create an object expression demonstrated below

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

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM