'How to define a variable which implement the interface in Kotlin?

I hope to define a variable mAction which implement the interface MediaRecorder.OnInfoListener .

But Code A isn't correct, how can I fix it?

Code A

  val mAction: MediaRecorder.OnInfoListener{
        mr, what, extra ->
           if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
               //ToDo
          }
    }

Added Content:

Code B

val mAction = object: MediaRecorder.OnInfoListener{
         override fun onInfo(mr: MediaRecorder?, what: Int, extra: Int) {
              if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
                       
              }
          }
      }


Solution 1:[1]

You are simply missing an = instead of :.

val mAction = MediaRecorder.OnInfoListener{
        mr, what, extra ->
           if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
               //ToDo
          }
    }

You can’t define a property without = unless you are defining a custom getter or using a property delegate.

Solution 2:[2]

  val mAction = MediaRecorder.OnInfoListener{
        mr, what, extra ->
           if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
               //ToDo
          }
    }

you can achieve this by doing something like this

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2