Java 通过查看RecyclerView的值来查找RecyclerView行位置

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

我有一个包含内容的RecyclerView

RecyclerView的持有者中的一个值是一个var实体\u id:Int

我需要在RecyclerView的行中循环查找包含特定实体id的行,而不知道适配器的位置


换句话说,我知道行的一个实体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
}