繁体   English   中英

类型不匹配,必需:(Recyclerview.Adapter<recyclerview.viewholder> ?..Recyclerview.Adapter&lt;*&gt;,找到:HomeAdapter</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>
  • 设置正确的名称。 RecyclerView 的Object 名称itemAdapter是不可接受的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM