2011-02-11 6 views
0

Je CustomListView, à savoir contiens une image de fond et TextView,ListView et sa couleur texte

Lorsqu'un élément est sélectionné i besoin de changer l'image d'arrière-plan et la couleur de police, actuellement je peux changer l'arrière-plan de la ligne sélectionnée la liste en utilisant un xml, mais je ne peux pas changer la couleur du texte. Par défaut, la couleur de mon texte est noire lorsque je clique sur un élément de la liste. J'ai besoin de changer la couleur du texte en blanc.

je utilise la disposition suivante pour mon customlistview

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="29dp" 
    android:id="@+id/appcategoryLinearLayout" 
    android:background="@drawable/appcategorybg1" 
    android:gravity="left|center_vertical" 
    > 
     <TextView 
     android:gravity="left|center_vertical" 
     android:text="fdsfsdfsdfdsfdsfdsf" 
     android:paddingLeft="8dp" 
     android:textSize="8dp" 
     android:textColor="@color/black" 
     android:id="@+id/appCategoryNameTextView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 
+0

pouvez-vous s'il vous plaît afficher les mises en page XML? –

+0

J'ai écrit en couleur xml et je l'ai mis en textcolor, maintenant il fonctionne bien – Bytecode

+0

au lieu de changer dans le xml le faire par programmation ce sera plus facile ... tout ce que vous devez faire dans onClickListener suffit de changer la couleur de texte en utilisant txt. setColor (int); méthode – silverFoxA

Répondre

0

La seule façon d'écrire votre propre ListAdapter et écrire des contrôles personnalisés qui auraient les propriétés visuelles que vous définissez.

0

Je ne sais pas si cela vous aidera mais vous pouvez faire quelque chose comme ce

Utiliser des variables comme TextView globale

TextView t ; 


lv.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
     { 
       if(t != null) 
       { 
        //reset the color to black 
       } 
       LinearLayout lay = (LinearLayout)v; 
       t = lay.getChildAt(0); 
       //now set text to bold 
     } 
    }; 
+0

@Sarabh votre idée fonctionne, mais le problème est que je ne peux pas réinitialiser la couleur blanche au noir, lorsque la police devient blanche, toujours comme ça, je veux réinitialiser l'autre texte en noir lorsque je sélectionne une nouvelle ligne. – Bytecode

+0

J'ai modifié le code qui pourrait fonctionner – ingsaurabh

Questions connexes