J'ai des problèmes sur la quatrième ligne. Dans mon code, getLogo renvoie un entier (ID) d'une image. Je veux maintenant utiliser l'ID pouvant être dessiné pour l'image et le mettre dans une ImageView avec l'ID spécifié. Cependant, à gauche du signe égal, j'obtiens l'erreur de variable expected et à droite, il est écrit Type Mismatch ... Required: ImageView Found: Int.

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
    val layoutInflator = LayoutInflater.from(context)
    val row = layoutInflator.inflate(R.layout.layoutlistviewloan, parent, false)
    row.findViewById<ImageView>(R.id.institutionImage) = loansModel.loan[position].institution.getLogo()
}
0
Nicole Foster 10 oct. 2020 à 23:59

1 réponse

Meilleure réponse

findViewById() est une fonction qui renvoie un View (dans ce cas, vous dites que c'est un ImageView). Ce n'est pas une variable (val ou var) à laquelle vous pouvez affecter une valeur.

Je suppose que vous voulez trouver ce ImageView dans la mise en page, puis le configurer pour afficher votre ID dessinable. Vous devez donc enchaîner un setImageResource appel à ImageView après l'avoir saisi

row.findViewById<ImageView>(R.id.institutionImage).setImageResource(drawableId)

Vous pourriez y coller le code "Obtenir l'ID dessinable" en tant que paramètre setImageResource

row.findViewById<ImageView>(R.id.institutionImage).setImageResource(loansModel.loan[position].institution.getLogo())

Mais personnellement, je définirais simplement cela comme une variable pour le rendre plus lisible au lieu d'en faire trop sur une seule ligne (cela peut prêter à confusion !)

val logoId = loansModel.loan[position].institution.getLogo()
row.findViewById<ImageView>(R.id.institutionImage).setImageResource(logoId)
1
cactustictacs 10 oct. 2020 à 21:21