2011-07-22 6 views
0

salut cher j'ai 5 lignes dans ma listview chaque listview ont l'image et le texte associé, je veux quand je clique sur listview à n'importe quelle position il change sa couleur de fond et quand je cliquez sur une autre position dans la liste précédemment sélectionnée ligne de liste vient à son ancienne condition et sélectionné changer la couleur et l'image ... comment l'accomplir? mercichanger backgroundcolor et image de listview quand cliquez sur listview

mon code est ..mais il ne conserve pas la ligne précédemment sélectionnée ...

public void onListItemClick(ListView parent, View v, int position, 
                   long id) { 
     if(position == 0) 
     { 
       v.setBackgroundColor(Color.WHITE);     
     } 
     if(position == 1) 
     { 
       v.setBackgroundColor(Color.WHITE);     
     } 

    Toast.makeText(getApplicationContext(), "You have selected " 
        +(position+1)+"th item", Toast.LENGTH_SHORT).show(); 
} 

Répondre

1

Vous pouvez utiliser le concept de sélecteur. Créez un sélecteur XML et utilisez-le comme arrière-plan de la ligne. il peut aider you.like ceci:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" android:drawable="@drawable/selector_s" /> 
    <item android:state_pressed="true" android:drawable="@drawable/selector_s" /> 
    <item android:drawable="@drawable/selector_d" /> 
</selector> 

vous pouvez utiliser ce lien

http://android-journey.blogspot.com/2009/12/android-selectors.html