Я создаю приложение для Android в Котлине, которое использует RecyclerView для отображения данных из базы данных, поэтому я создал специальный адаптер, который извлекает данные из курсора и создает каждый элемент, который должен отображаться в RecyclerView.
Проблема в том, что мне нужно добавить цветной фильтр в ImageView (который использует векторный актив для отображения соответствующего значка), но когда я пытаюсь установить цветной фильтр для ImageView внутри onBindViewHolder, я получаю сообщение об ошибке:
Выражение «colorFilter» типа «ColorFilter!»не может быть вызван как функция.Функция invoke () не найдена.
Я сделал это на Java для других приложений и отлично работает, но я не работаю, поэтому Как я могу применить цветной фильтр вПользовательский адаптер для ReclyclerView?
Это мой код:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
cursor.moveToPosition(position)
val medicineType = cursor.getString(cursor.getColumnIndexOrThrow(MMDContract.columnas.TIPO_MEDICAMENTO))
when(iconsCollection?.indexOf(medicineType)){
0 -> {holder.icono.setImageResource(R.drawable.ic_roundpill)}
1 -> {holder.icono.setImageResource(R.drawable.ic_tab)}
2 -> {holder.icono.setImageResource(R.drawable.ic_capsula)}
3 -> {holder.icono.setImageResource(R.drawable.ic_syrup)}
4 -> {holder.icono.setImageResource(R.drawable.ic_drops)}
5 -> {holder.icono.setImageResource(R.drawable.ic_eyedrops)}
6 -> {holder.icono.setImageResource(R.drawable.ic_ointment)}
7 -> {holder.icono.setImageResource(R.drawable.ic_powder)}
8 -> {holder.icono.setImageResource(R.drawable.ic_gel)}
9 -> {holder.icono.setImageResource(R.drawable.ic_inhalator)}
10-> {holder.icono.setImageResource(R.drawable.ic_suppository)}
11-> {holder.icono.setImageResource(R.drawable.ic_intravenous)}
12-> {holder.icono.setImageResource(R.drawable.ic_syringe)}
}
holder.icono.colorFilter(ContextCompat.getColor(holder.itemView.context,R.color.flamingo)
holder.NombreComercial.text = cursor.getString(cursor.getColumnIndexOrThrow(MMDContract.columnas.NOMBRE_COMERCIAL_MEDICAMENTO))
holder.NombreGenerico.text = cursor.getString(cursor.getColumnIndexOrThrow(MMDContract.columnas.NOMBRE_GENERICO_MEDICAMENTO))
}