[英]Kotlin: Type mismatch (RecyclerView.Adapter<RecyclerView.ViewHolder>)
[英]Type Mismatch , Required: (Recyclerview.Adapter<Recyclerview.ViewHolder>?..Recyclerview.Adapter<*> , found: HomeAdapter
我使用 Kotlin 语言在 Android Studio 中制作了这个应用程序。 当我创建应用程序时发生错误。
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
val progressBar = findViewById<ProgressBar>(R.id.pb_home)
val dataSource = NetworkProvider.providesHttpAdapter().create(HomeDataSource::class.java)
dataSource.discoverMovie().enqueue(object : Callback<HomeResponse> {
override fun onResponse(
call: Call<HomeResponse>, response:
Response<HomeResponse>
) {
progressBar.visibility = View.GONE
val results = response.body()?.results
val itemAdapter = findViewById<RecyclerView>(R.id.rv_home)
itemAdapter.addItemDecoration(
DividerItemDecoration(this@HomeActivity,
DividerItemDecoration.VERTICAL))
itemAdapter.adapter = HomeAdapter (results ?: emptyList())
}
override fun onFailure(call: Call<HomeResponse>, t: Throwable) {
Log.e(HomeActivity::class.java.simpleName, "${t.printStackTrace()}")
}
})
}
}
当您尝试在两种不同的变量类型之间分配值时,会发生类型不匹配错误。
val recyclerView = findViewById(R.id.rv_home) as RecyclerView?
val adapterOBJ = HomeAdapter(results ?: emptyList())
recyclerView?.layoutManager = LinearLayoutManager(this@HomeActivity, RecyclerView.VERTICAL, false)
recyclerView?.adapter = adapterOBJ
您的HomeAdapter将是
class HomeAdapter (private val alList: ArrayList<String>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
供参考
results?: emptyList()
持有ArrayList<String>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.