Kotlin Synthetic:RecyclerView适配器中无法识别的变量

时间:2018-01-23 18:17:58

标签: android android-layout android-linearlayout kotlin-android-extensions

当试图在RecyclerView.Adapter中使用Kotlin Extensions来引用XML布局文件中的视图时,即使看似正确的导入,Intellij也无法通过其ID识别视图。关于这一点的奇怪之处在于它可以在Activity或Fragment中运行。 是否需要在RecyclerView.Adapter中使用其他上下文?

Intellisense没有在RecyclerView.Adapter实现中获取视图: Intellisense not picking up Views in a RecyclerView.Adapter implementation

查看了几乎相同的导入 View was found with practically the same imports

这是我的XML,以防万一

{{1}}

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试在 onBindViewHolder 之外的视图中获得该视图。

请查看此示例:

import kotlinx.android.synthetic.main.row_badges_item.view.*

class BadgesAdapter(private val mActivity: Activity) : RecyclerView.Adapter<BadgesAdapter.ViewHolder>() {

override fun onBindViewHolder(holder: ViewHolder, position: Int) {

    holder.bind(position)
}

override fun getItemCount(): Int {
     ba // Error here
    return mData.size
}

inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {

    fun bind(position: Int) {

        with(itemView) {

            val badge = mData[position] 

            badges_title.text = badge.badgeTitle // Fine here                
        }

    }

}

}

希望有帮助。谢谢。 :)