Résolu couleur au lieu d'un id de ressource
Récemment, j'ai vu apparu un chiffon erreur dans mon code:
Doit passer résolu de couleur au lieu de l'id de ressource ici:
getResources().getColor(R. de couleur.maps_list_background_color)
MyClass.java /myapp/android/cartes ligne 107 Android Peluches Problème
Je sais comment le résoudre, la réponse est dans l'erreur, le truc c'est que je ne comprends pas pourquoi ils ont ajouté cette erreur dans le linter.
- Est
maps_list_background_color
une couleur des thats déclaré dans Strings.xml? - Non, c'est une couleur que j'ai défini dans res/values/colors.xml
Vous devez vous connecter pour publier un commentaire.
La fonction que vous appelez attend un entier qui est un triple RVB, pas juste l'id de ressource de couleur. La couleur id de ressource est toujours un nombre entier, mais ne serait pas produire de la couleur que vous attendez si il a été utilisé comme le triple RVB. Afin de transmettre la bonne triple RVB pour votre couleur, vous devez le résoudre avec l'
getResources().getColor(R.color.example_color)
appel.@ColorRes
à laint
paramater serait de supprimer cette erreur, mais il n'a pas.color
. Je viens de faire ma méthode nomméesetButtonColorInt
d'avertissement et s'en alla.Depuis je suis toujours à trouver sur Google et c'est déconseillé, j'ai pensé que je pourrais aussi bien partager la méthode actuelle de le faire.
vérifier getResources().getColor() est obsolète
Utiliser les annotations
@ColorInt
pour confirmer que c'est la couleur de l'un couleur de référence id.Voir:
android.de soutien.annotation.ColorInt
Depuis
getResources().getColor()
est obsolète, vous avez besoin de faire pour obtenir la couleur:Maintenant, vous avez la couleur à l'égard du contexte actuel
Définissez la couleur à l'aide de:
Que pour moi, c'est très stupide d'avertissement.
J'ai la même classe avec la fonction:
De toute façon, si j'essaie d'appel
setBackgroundColor
, j'obtiens le message d'avertissement. Mais pourquoi?Alors, j'ai fait simple: renommer
setBackgroundColor
àsetBackgroundColorr
.Cet avertissement s'activer si trouvé le nom de
color
au nom de la fonction.Et oui, je n'aime pas le nom setColorBackground ou de toute autre 🙂
Apparemment, cela est causé par de la charpie; troisième point.
Les Nouvelles Règles De La Charpie
Vous pourriez probablement réduire, ou essayer de la mise en œuvre de leur syntaxe.