我有一个RecyclerView
,里面装有内容。
RecyclerView
的{{1}}中的值之一是Holder
。
我将需要遍历var entity_id: Int
的行以查找包含特定RecyclerView
的行,而不知道适配器的位置。
换句话说,我知道我的行的entity_id
中有一个是23,我需要检索该行的adapterPosition。
答案 0 :(得分:1)
遍历适配器的最后项并与您的条件匹配,如果找到了项,则循环的索引就是适配器项的位置。
<br />function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {
<br /><span style="color: #0000BB">test</span><span style="color: #007700">();
答案 1 :(得分:0)
如果您只需要获取23值的头寸-您可以在ViewHolder中进行回调,以检查该值,如果该值是23->发送包含此项的位置的回调头。
这里看起来--
您的 ViewHolder :
class MyRecyclerViewAdapter(private val callback: (Int) -> Unit) : RecyclerView.Adapter<MyRecyclerViewAdapter.MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun getItemCount(): Int {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
inner class MyViewHolder(v: View) : RecyclerView.ViewHolder(v) {
fun bind(model: Model) {
TODO("Some logic")
if (model.id == 23) {
callback.invoke(adapterPosition)
}
}
}
}
型号:
class Model(val id: Int)
活动:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
/** Init LayoutManager
* ....
* */
val adapter = MyRecyclerViewAdapter(callback = { position ->
TODO("Do some logic with your position")
})
}