【发布时间】:2019-01-28 23:23:05
【问题描述】:
我听说在ViewHolder 内部实现onClickListener 是一种很好的做法。但是,我不确定如何访问与onClickListener 内部的ViewHolder 关联的项目。
例如:
import android.content.Context
import androidx.recyclerview.widget.RecyclerView
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import kotlinx.android.synthetic.main.post.view.*
import rstudio.vedantroy.swarm.MainActivity.Companion.TAG
class PostAdapter(private val items : List<Post>, private val contex: Context) : RecyclerView.Adapter<MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
return MyViewHolder(LayoutInflater.from(contex).inflate(R.layout.post, parent, false))
}
override fun getItemCount(): Int {
return items.size
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.bodyContent.text = items[position].content
}
}
class MyViewHolder(view: View): RecyclerView.ViewHolder(view), View.OnClickListener {
override fun onClick(v: View?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
val bodyContent : TextView = view.bodyContent
}
如何访问items,如何找到ViewHolder的当前索引?
我查看了这个示例:Recyclerview(Getting item on Recyclerview),但没有解释 mDataSource 的来源。
【问题讨论】:
标签: android android-recyclerview android-viewholder