У меня есть следующий адаптер, как это:
class ChatAdapter(chatItems: List<User>,
context: MainActivity) : RecyclerView.Adapter<ChatAdapter.ChatItemHolder>() {
private val items= chatItems
private val context = context
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ChatItemHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.chat_item, parent, false)
return ChatItemHolder(itemView)
}
override fun getItemCount(): Int = items.size
override fun onBindViewHolder(holder: ChatItemHolder, position: Int) {
holder.firstName?.text = items[position].firstName
holder.lastName?.text = items[position].lastName
holder.initials?.text = setInitials(items[position].firstName, items[position].lastName )
Log.d("__test__", items[position].avatarUri.toString())
// Probleme is here
Glide.with(context)
.load(items[position].avatarUri.toString())
.centerCrop()
.into(holder.avatar)
holder.isOnline?.visibility = if (items[position].online) View.VISIBLE else View.GONE
}
inner class ChatItemHolder(chatItem: View) : RecyclerView.ViewHolder(chatItem){
var firstName: TextView? = null
var lastName: TextView? = null
var initials: TextView? = null
var avatar: ImageView
var isOnline: View? = null
init {
firstName = chatItem.findViewById(R.id.tv_first_name)
lastName =chatItem.findViewById(R.id.tv_last_name)
initials = chatItem.findViewById(R.id.tv_initials)
avatar = chatItem.findViewById(R.id.iv_avatar)
isOnline = chatItem.findViewById(R.id.online)
}
}
private fun setInitials(fn: String?, ln: String?): String {
return if (ln.isNullOrEmpty())
fn!!.first().toString() else fn!!.first().toString() + ln.first()
}
}
, но когда я запускаю свой код, все работы корректно исключают Glide
, но изображение не появляется. Почему? Остальные детали моих recyclerView
работают правильно, поля firstName
, lastName
, isOnline
отображают все детали, требующие детального просмотра.