首页 > 解决方案 > E/RecyclerView:没有附加适配器;跳过布局 - kotlin

问题描述

请帮助 [RecyclerView] :

[ E/RecyclerView:未连接适配器;跳过布局]

我的代码是:

class UsersAdapter (private val usersList:List<User>) : RecyclerView.Adapter <CustomViewHolder>() {

    override fun getItemCount(): Int {
        return usersList.size
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        val layoutInflater = LayoutInflater.from(parent?.context)
        val cellForRow = layoutInflater.inflate(R.layout.users_list, parent, false)
        return CustomViewHolder(cellForRow)
    }

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
        val user = usersList[position]
        Log.d("Yasser", "onResponse: ${user.name}")
        holder.view.UsersPersonName.text = user.name
        holder.view.UsersShortPersonName.text = user.name.substring(0).capitalize()
        holder.view.UsersPersonEmail.text = user.email
    }
}
class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view) {

}

用户活动:

class UsersActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_users)

        RetrofitClient.instance.getUsers().enqueue(object: Callback<List<User>>{

            override fun onResponse(call: Call<List<User>>, response: Response<List<User>>) {
                showData(response.body()!!)

            }
            override fun onFailure(call: Call<List<User>>, t: Throwable) {
            d("Fail","onFailure")
            }

        })
    }

    private fun showData(usersList: List<User>) {
        listUsersRecycle.apply {
            layoutManager = LinearLayoutManager(this@UsersActivity)
            adapter = UsersAdapter(usersList)
        }
    }

我尝试了很多,但它给了我相同的结果,我该如何解决这个错误 [Kotlin]?

标签: androidkotlinandroid-recyclerview

解决方案


这是解决方法。编辑你的 showData() 方法。

private fun showData(usersList: List<User>) {
        listUsersRecycle.layoutManager = LinearLayoutManager(this@UsersActivity)  
        //Apply layout manager here.
        listUsersRecycle.apply {
        adapter = UsersAdapter(usersList)
        }
    }

推荐阅读