J'ai un Textview comme ceci:Impossible de définir le « android: fond » attribut avec databinding, obtenir un « objet] ne peut pas être converti pour voir » erreur
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{message.isSelf() ? @drawable/bubble_blue : @drawable/bubble_grey}"/>
Et le message.isSelf() est juste une méthode publique qui retourne un booléen.
Cependant, je reçois cette erreur lorsque vous essayez de compiler:
Error:(125, 141) error: incompatible types: Message cannot be converted to View
Aller dans le code source de l'erreur, c'est la ligne de problème dans le produit databinding
var = ((messageIsSelf) ? (getDrawableFromResource(message, R.drawable.bubble_blue)) : (getDrawableFromResource(message, R.drawable.bubble_grey)));
La méthode getDrawableFromResource prend une vue et un identifiable comme un paramètre:
/** @hide */
protected static Drawable getDrawableFromResource(View view, int resourceId) {
if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
return view.getContext().getDrawable(resourceId);
} else {
return view.getResources().getDrawable(resourceId);
}
}
Pour certaines raisons n, mon objet de message est passé à la méthode au lieu d'une vue. Comment puis-je réparer ça? J'ai essayé de supprimer le dossier de construction mais n'aide toujours pas.