forum FrAndroid

Aller au contenu

Change

hitech regie

Spinner personnalisé, couleur s'affiche en noir

spinner couleur personnalisé

  • Vous ne pouvez pas répondre à ce sujet
Aucune réponse à ce sujet

#1
Sylvain-a

Sylvain-a

    Membre régulier

  • Membres
  • 137 messages
Bonjour,
Alors voila, je tente de faire un spinner personnalisé comprenant 2 TextView.
L'un des TextView a un background de couleur (qui change à chaque ligne) généré à partir d'un drawable personnalisé et un texte blanc.
Le second TextView n'a rien de particulier.

Le problème, c'est que le premier TextView s'affiche en noir, sans texte lorsque l'on déroule le spinner
(L'affichage est normal sinon).
Vous avez une image en pj.

J'ai créé un adapter personnalisé qui s'occupe du convertview

Voici le code de la ligne du spinner :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:orientation="horizontal">
  
	<TextView android:id="@+id/line_row_number"
	   android:layout_width="wrap_content"
	   android:layout_height="wrap_content"
	   android:textColor="@android:color/white"
	   android:background="@drawable/line_number"
	   android:gravity="center"
	   android:layout_gravity="center_vertical"
	   android:layout_marginRight="5dp"
	   android:paddingLeft="5dp"
	   android:paddingRight="5dp"
	   android:paddingTop="1dp"
	   android:paddingBottom="1dp"/>
  
<TextView android:id="@+id/line_row_name"
	   android:layout_width="wrap_content"
	   android:layout_height="wrap_content"
	   android:textColor="@android:color/black" />

</LinearLayout>
public View getView(int position, View convertView, ViewGroup parent) {
  if(convertView == null){
   convertView=inflater.inflate(R.layout.lines_list_item, null, true);
   TextView nText=(TextView)convertView.findViewById(R.id.line_row_number);
   nText.setText(linesShown.get(position).number());
   GradientDrawable background=(GradientDrawable)nText.getBackground().mutate();
   background.setColor(Color.parseColor(linesShown.get(position).color()));
   nText.setBackgroundDrawable(background);
  
   String txt;
   txt=linesShown.get(position).name();
   ((TextView)convertView.findViewById(R.id.line_row_name)).setText(txt);
  
  }
  return convertView;
}
Merci par avance :).

Fichier(s) joint(s)


Modifié par Sylvain-a, 05 February 2012 - 17:26.