How to call Context and Intent objects inside onBi

2020-05-10 18:51发布

问题:

I want to open a new Activity within RecyclerView, but I can't create an Intent object in there.

val intent1 = Intent(this,Main2Activity::class.java)   
startActivity(intent1) 

Android Studio warns about Intent not being a Context. How can I still open a new Activity inside the RecyclerView

I tried also the code below,it gives "startActivity(intent)" line gives error, "type mismatch, required Context, found Intent".

Plus, also "this@MainActivity" gives "unresolved reference@MainActivity" error.

  override fun onBindViewHolder(holder: Main_Menu_Holder, position: Int) {
        var currentview = alldata.get(position)

    }

回答1:

You are calling this which is your RecyclerView's onBindViewHolder. You have to call the Context using View:

  override fun onBindViewHolder(holder: Main_Menu_Holder, position: Int, v:View) {
        val intent = Intent(v.context, Main2activity::class.java)
        startActivity(intent) 
}