簡體   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