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