Java 通过查看RecyclerView的值来查找RecyclerView行位置
我有一个包含内容的RecyclerView RecyclerView的持有者中的一个值是一个var实体\u id:Int 我需要在RecyclerView的行中循环查找包含特定实体id的行,而不知道适配器的位置Java 通过查看RecyclerView的值来查找RecyclerView行位置,java,android,kotlin,android-recyclerview,Java,Android,Kotlin,Android Recyclerview,我有一个包含内容的RecyclerView RecyclerView的持有者中的一个值是一个var实体\u id:Int 我需要在RecyclerView的行中循环查找包含特定实体id的行,而不知道适配器的位置 换句话说,我知道行的一个实体id是23,我需要检索该行的adapterPosition 如果您只需要获取23值的位置-您可以在您的ViewHolder中进行回调,在那里您将检查该值,如果该值为23->发送带有此项目位置的回调 下面是它的外观-> 您的持证人: 活动: override
换句话说,我知道行的一个实体id是23,我需要检索该行的adapterPosition 如果您只需要获取23值的位置-您可以在您的ViewHolder中进行回调,在那里您将检查该值,如果该值为23->发送带有此项目位置的回调 下面是它的外观-> 您的持证人: 活动:
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")
})
}
循环遍历适配器的最终项并与您的条件匹配,如果找到项,则循环的索引是适配器项的位置
private fun getPosition(entityId: Int): Int {
for (i in list.indices) {
if (list[i].entity_id == entityId) { //match with your id
return i
}
}
return -1
}
谢谢,很接近,当我给出23的时候,这只是一个例子。对不起,我应该说明的不仅仅是23,而是一些数字。你可以再解释一遍你的任务。因为我给你发的那个例子很有效。
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")
})
}
private fun getPosition(entityId: Int): Int {
for (i in list.indices) {
if (list[i].entity_id == entityId) { //match with your id
return i
}
}
return -1
}