在Android Studio中获取适配器类型不匹配



基本上我正在尝试创建一个回收器视图,这是的主要活动

我在上出错了

recyclerView.adapter = adapter

package com.example.newsorning
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.RecyclerView
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView.layoutManager = LinearLayoutManager(this)
val items = fetchData()
val adapter = NewsListAdapter(items)
recyclerView.adapter = adapter
}
private fun fetchData():ArrayList<String>{
val list = ArrayList<String>()
for (i in 0 until 100){
list.add("item $i")
}
return list
}
}

这是我创建adpader的地方//newsListadapter

package com.example.newsorning
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView

class NewsListAdapter(private val item:ArrayList<String>): 
RecyclerView.Adapter<NewsViewHolder>() {
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): NewsViewHolder {

val view = LayoutInflater.from(p0.context).inflate(R.layout.item_news,p0,false)

return  NewsViewHolder(view)
}
override fun getItemCount(): Int {
return item.size
}
override fun onBindViewHolder(p0: NewsViewHolder, p1: Int) {
val currentItem = item[p1]
p0.titleView.text = currentItem
}
}
class NewsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val titleView : TextView = itemView.findViewById(R.id.titleView)
}

这可能是由于您使用了旧的、不推荐使用的支持库RecyclerView(android.support.v7(而不是Jetpack RecyclerView(androidx(。也许您正在使用的某个库仍然使用旧的支持库,所以它在您的命名空间中,并且您在选择导入哪个类时意外选择了它。您需要更改线路

import android.support.v7.widget.RecyclerView

import androidx.recyclerview.widget.RecyclerView

在这两个文件中。您需要根据这些指示启用Jetifier。

最新更新