回收器视图在 findViewById 中给出错误

问题描述 投票:0回答:1

我正在尝试从回收器视图中的 Api 获取图像数据,但以下代码在回收器视图中按 Id 查找视图时出现错误

以下代码是调用获取的数据的活动:

lateinit var rvMain:RecyclerView
lateinit var myAdapter: MyAdapter


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_2)
    //rvMain = findViewById<RecyclerView>(R.id.recyclerview)
    setContent {

        rvMain.findViewById(R.id.recycler_view)



        getAllData()

    }
}

private fun getAllData() {
    var retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build()
        .create(ApiInterface::class.java)

    var retroData = retrofit.getData()

    retroData.enqueue(object :Callback<List<MyDataItem>> {
        override fun onResponse(
            call:Call<List<MyDataItem>>,
            response: retrofit2.Response<List<MyDataItem>>
        ) {
            var data = response.body()
            Log.d("data", data.toString())
        }

        override fun onFailure(call: Call<List<MyDataItem>>, t: Throwable) {
            TODO("Not yet implemented")
        }


    })

}

}

android kotlin rest android-recyclerview retrofit
1个回答
0
投票

出现此问题是因为您尝试在代码的

findViewById
块中调用
setContent
。该块可能属于不同的视图框架,并且无权访问活动的视图层次结构。

请移到外面再试一次

© www.soinside.com 2019 - 2024. All rights reserved.