android - 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]?
解决方案
这是解决方法。编辑你的 showData() 方法。
private fun showData(usersList: List<User>) {
listUsersRecycle.layoutManager = LinearLayoutManager(this@UsersActivity)
//Apply layout manager here.
listUsersRecycle.apply {
adapter = UsersAdapter(usersList)
}
}