当前位置: 首页 > 知识库问答 >
问题:

具有gridlayout类型的kotlin错误回收器视图不匹配

孟成化
2023-03-14

我在recyclerView中遇到错误//

数据类类别(

val Name: String,
val Image:Int

)这是模型/////

对象类别模型{

fun getImages(): ArrayList<categories> {
    val ImagesList = ArrayList<categories>()
    val categoryFirst = categories(
        "Memmals",R.drawable.memmals
    )
    ImagesList.add(categoryFirst)



    val categorySecond = categories(
        "Memmals",R.drawable.fish
    )
    ImagesList.add(categorySecond)
    return ImagesList
    }
}

////适配器///

类CategoriesAdapter(private val itemList:ArrayList):RecyclerView。适配器

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CategoriesAdapter.ViewHolder {


    val view =LayoutInflater.from(parent.context)

.充气(R.layout.memmals,parent,false)返回ViewHolder(视图)

}

override fun onBindViewHolder(holder: CategoriesAdapter.ViewHolder, position: Int) {
    holder.bind(categories("Memmals",2))
}

override fun getItemCount(): Int {
    return itemList.size
}

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

    fun bind(category: categories) {
        val textViewName = itemView.findViewById<TextView>(R.id.txtCategory)
        textViewName.text = category.Name
        val txtImage=itemView.findViewById<View>(R.id.image)
        txtImage.id=category.Image
    }
}

}/////主要活动///

类MainActivity:AppCompatActivity(){

private lateinit var mAdapter: CategoriesAdapter
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    binding= ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
    binding.recyclerView.setOnClickListener{
        val intent=Intent(this,Level1::class.java)
        startActivity(intent)

    }

    val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
    recyclerView.layoutManager = GridLayoutManager(this,2)

    val itemList = ArrayList<CategoriesModel>()

//从这里

    itemList.add(categories("Memmals",R.drawable.memmals))
    itemList.add(categories("Fishes",R.drawable.fish))
    itemList.add(categories("Arthropods",R.drawable.dear))
    itemList.add(categories("Yalk",R.drawable.yalk))

//此处有错误

    //Adapter setting
    mAdapter = CategoriesAdapter(itemList)
    recyclerView.adapter = mAdapter

}

}///这里是错误///

MainActivity.kt:(34,22):类型不匹配:推断类型是类别,但类别模型是预期的

共有1个答案

翟俊
2023-03-14

主要活动。千吨级

 val itemList = ArrayList<CategoriesModel>()

应更改为

 val itemList = ArrayList<categories>()

因为您使用的是类别模型对象,而预期是类别。

 类似资料:
  • 我在我的应用程序中使用了具有多个视图的回收器视图。这工作正常,但我有一个问题,滚动这个回收视图!当我想上下滚动时,它有滞后现象。这是我的回收器视图适配器: 这个回收器视图有6种以上的视图类型,我必须显示,但是当回收器视图中的项目增加时,我在上下滚动时会有很大的延迟。我不知道为什么我在滚动上有延迟!我真的很感谢你的帮助。

  • 这个应用程序直接从应用编程接口获取数据。当它运行时,会发生这种类型的错误。基本上,我认为错误发生在getItemCount()方法中,但我无法解决这个问题。我已经附上了错误文件和整个代码。如果你能解决这个错误,我将不胜感激。 JAVAlang.NullPointerException:尝试调用接口方法“int java”。util。列表com上的空对象引用上的size()。techbrightso

  • 我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我

  • 我正在使用ExoPlayer流视频中的回收视图。 我正在ViewHolder中的RecyclerView适配器的绑定方法中实现ExoPlayer。 我使用的视频格式是m3u8,我使用的URL在浏览器中工作。所以我知道视频链接是有效的。我还测试了一个youtube链接。 以下是Recyclerview适配器的ViewHolder中的代码- 当加载我的recyclerview并带着视频进入该行时,我发

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个:

  • 我试图制作一个可在滚动条上生成项目的RecyclerView。方法 我试图实现的是使用循环生成一个无限的 示例:[示例_屏幕截图][1] 编辑:忘记在适配器构造函数中添加一些代码了!添加日志 类ViewHolder2扩展了RecyclerView。ViewHolder实现了视图。OnClickListener{