81 votes

TextView setTextColor () ne fonctionne pas

I du programme, créer une liste (pas un ListView, simplement en les ajoutant à la mère) de ces éléments:

    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:orientation="vertical" android:layout_weight="1">
    <TextView android:id="@+id/filiale_name"
    android:layout_width="fill_parent" android:layout_height="wrap_content"/>
    <TextView android:id="@+id/lagerstand_text"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:textSize="10sp" android:textColor="@color/red"/>
</LinearLayout>

Aussi, j'ai défini quelques couleurs dans les values/colors.xml. Comme vous le voyez, le TextView avec l'id "lagerstand_text" a mis de la couleur rouge par défaut. Qui fonctionne.

Lors de la création d'éléments en Java, je ne

lagerstandText.setText("bla");

et pour certains éléments aussi je ne

lagerstandText.setTextColor(R.color.red);

et d'autres couleurs. Tandis que les éléments sur lesquels je n'appelle pas setTextColor() sont en rouge, tous les autres sont gris, peu importe la couleur que j'ai choisi (même si c'est le même rouge à nouveau).

Pourquoi est-ce?

235voto

Sunil Kumar Sahoo Points 21032

La documentation n'est pas très détaillée à ce sujet, mais vous ne pouvez pas utiliser uniquement le nombre entier R.color lorsque vous appelez setTextColor . Vous devez appeler getResources().getColor(R.color.YOURCOLOR) pour définir une couleur correctement.

Utilisez ce qui suit pour définir la couleur de votre texte par programme:

 textView.setTextColor(getResources().getColor(R.color.YOURCOLOR));
 

35voto

Golu Points 7213

Donc, il y a plusieurs façons de réaliser cette tâche.

1.

 int color = Integer.parseInt("bdbdbd", 16)+0xFF000000);
textview.setTextColor(color);
 

2

 textView.setTextColor(getResources().getColor(R.color.some_color));
 

3

 textView.setTextColor(0xffbdbdbd);
 

4

 textView.setTextColor(Color.parseColor("#bdbdbd"));
 

5

 textView.setTextColor(Color.argb(a_int, r_int, g_int, b_int));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X