Akbar Grunge
Akbar Grunge

Reputation: 39

How to call extension object inside companion from another class using kotlin?

I want to make playvideo using Exoplayer, but I have a little bit problem with how to access my extension function.

import com.google.android.exoplayer2.ui.PlayerView

class playerViewadapter {
    companion object{
      fun PlayerView.loadView(){
      }
   }
}

but loadView extension from my AppCompatActivity not show

class Test:AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.test)
        playerViewadapter.loadView()
    }
}

How to call loadView from my AppCompatActivity

Upvotes: 1

Views: 177

Answers (2)

iknow
iknow

Reputation: 9852

Why You define extension function in a companion object of another class? Isn't it better to define it in the file Where You have PlayerView or if it is not Your class, create a new file for utils functions?

class PlayerView
{
}

fun PlayerView.loadView()
{
}

And then You can call this function:

val playerView = PlayerView()
playerView.loadView()

Upvotes: 0

Animesh Sahu
Animesh Sahu

Reputation: 8096

You have to be in context of the object in order to invoke something of it.

with(playerViewadapter) { } or playerViewadapter.apply { } should do it:

Example:

with(playerViewadapter) {
    playerView.loadView()
}

Try it yourself

Upvotes: 2

Related Questions