Définir la couleur du texte dans Android Spinner

Je veux changer la couleur de l'élément sélectionné dans mon spinner Android (ciblage de l'API de niveau 16 et plus). J'ai essayé plusieurs solutions posté ici, y compris la création d'une mise en page personnalisée pour mon spinner articles et à l'aide d'un ColorStateList comme la couleur du texte de la propriété de la mise en page personnalisée, mais en vain. Le spinner est montré sur un fond semi-transparent - par conséquent, la mise en page personnalisée pour les articles ne fonctionne pas car il ajoute une couleur à la toupie. Actuellement mon hack solution est

if (_colorCodeSpinner.getSelectedView() != null) {
    ((TextView) _colorCodeSpinner.getSelectedView()).setTextColor(0xFFFFFFFF);
}

mais cela ne fonctionne que si la vue sélectionnée n'est pas nulle (ce qui est fait sur le changement d'orientation).

Je ne peux pas croire qu'il n'y a pas une solution simple pour le réglage de la couleur du texte. Il semble que quelque chose vous arrivait souvent de le faire. Même en changeant la couleur de la flèche, dont je n'par

_colorCodeSpinner.getBackground().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);

Suis-je raté quelque chose? Quel est le moyen recommandé de modifier les couleurs sur un spinner?

Définir la couleur du texte dans Android Spinner

Comme on le voit dans l'image, la couleur du texte de l'élément sélectionné dans le spinner est noir, mais je veux le changer pour être blanc.

MODIFIER

Pour clarifier: je ne suis pas à la recherche pour certains petit morceau de code qui remplace les valeurs au moment de l'exécution (comme les deux extraits que j'ai posté dans cette question). Je suis à la recherche d'une réelle façon de le faire correctement (comme dans le fichier XML de mise en page ou par thèmes). Pour définir la couleur du texte de la propriété une fois donc je n'ai pas à le mettre à jour à chaque fois que je par exemple, sélectionnez un élément.

OriginalL'auteur Daniel | 2016-08-31