getResources().getColor () est déprécié [dupliquer]
cette question a déjà une réponse ici:
à l'Aide de:
buildToolsVersion "22.0.1"
,
targetSdkVersion 22
dans mon dossier gradle.
j'ai trouvé que l'utile getResources().getColor(R.color.color_name)
est obsolète.
Que devrais-je utiliser à la place?
4 réponses
Il semble que la meilleure approche est d'utiliser:
ContextCompat.getColor(context, R.color.color_name)
on choisira de façon appropriée la méthode à deux paramètres de la guimauve ou la méthode de la pré-Guimauve.
Eh bien, il est déprécié dans android M donc vous devez faire exception pour android M et inférieur. Il suffit d'ajouter le thème actuel sur la fonction getColor
. Vous pouvez obtenir le thème actuel avec getTheme()
.
cela fera l'affaire dans fragment, vous pouvez remplacer getActivity()
par getBaseContext()
, yourContext
, etc qui tiennent votre contexte actuel
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white, getActivity().getTheme()));
}else {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white));
}
*p. s: la couleur est dépréciée en M, mais le dessin est déprécié en l
vous devez utiliser ContextCompat.getColor (), qui fait partie de la bibliothèque de Support V4 (donc cela fonctionnera pour toutes les API précédentes).
ContextCompat.getColor(context, R.color.my_color)
comme spécifié dans la documentation,"à partir de M, la couleur renvoyée sera stylisée pour le thème du contexte spécifié". DONC pas besoin de s'inquiéter à ce sujet.
vous pouvez ajouter la bibliothèque de soutien V4 en ajoutant ce qui suit Au Tableau de dépendances à l'intérieur de votre construction d'application.gradle:
compile 'com.android.support:support-v4:23.0.1'
j'ai trouvé que le getresources utile().getColor(R. de couleur.color_name) est obsolète.
il n'est pas déprécié dans le niveau API 21, selon la documentation .
Il est obsolète dans le M Developer Preview. Cependant, la méthode de remplacement (un double paramètre getColor()
qui prend L'ID de la ressource couleur et un objet Resources.Theme
) n'est disponible qu'en L'aperçu du développeur M.
donc, en ce moment, continuer à utiliser le paramètre unique getColor()
méthode. Plus tard cette année, envisager d'utiliser la méthode à deux paramètres getColor()
sur les appareils Android M, retombant à la méthode à un seul paramètre dépréciée getColor()
sur les appareils plus anciens.