How to call Context and Intent objects inside onBindViewHolder

有些话、适合烂在心里 提交于 2019-12-02 23:30:03

问题


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) 
}


来源:https://stackoverflow.com/questions/57829275/how-to-call-context-and-intent-objects-inside-onbindviewholder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!