Я хочу установить TextView text из ClickListener itemView ViewHolder. Я попытался сделать объект-компаньон в классе Activity, и попытался вызвать его из ViewLolders itemView clicklistener. Но внутри объекта-компаньона я не смог получить доступ к объекту TextView в макете
Ниже приведен код адаптера для настройки recyclerview
class QnAdapter(val context: Context, val ques: List<QnoList>):
RecyclerView.Adapter<QnAdapter.ViewHolder>(){
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): ViewHolder{
val view = LayoutInflater.from(context).inflate(R.layout.recycler_qno, p0, false)
return ViewHolder(view)
}
override fun getItemCount(): Int {
return ques.size
}
override fun onBindViewHolder(p0: ViewHolder, p1: Int){
val question = ques[p1]
p0.setData(question, p1)
}
inner class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView){
var currentQ: QnoList?=null
var currentQno: Int =0
init{
itemView.setOnClickListener{
Toast.makeText(context,currentQ!!.qno.toString()+" Selected",Toast.LENGTH_SHORT).show()
var a1 = MCQActivity
a1.setText(context)
a1.setTxt() // here I want to set TextView, present in Layout of activity(not of recyclerview) text from recyclerview event
}
}
fun setData(ques:QnoList?,p1:Int){
itemView.rqno.text = ques!!.qno.toString()
this.currentQ = ques
this.currentQno = p1+1
}
}
}
private fun MCQActivity.Companion.setTxt() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
следующий код класса activity
class MCQActivity : AppCompatActivity() {
companion object {
fun setText(context: Context){
Toast.makeText(context, "Hi I am called", Toast.LENGTH_SHORT).show()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_mcq)
setRecyclerView()
}
open fun setRecyclerView(){
val layoutmanager = LinearLayoutManager(this)
layoutmanager.orientation= LinearLayoutManager.HORIZONTAL
recycler_qno.layoutManager = layoutmanager
val adapter = QnAdapter(this, mcq.queslst)
recycler_qno.adapter = adapter
}
}