Comment mettre en avant ListView-Éléments
j'ai eu le problème suivant.
j'ai une ListView avec personnalisé lignes consistant en une imageview et un textview.
le textview du code xml est
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="26px"
android:layout_marginLeft="3px"
android:singleLine="true"
android:ellipsize="end"
android:textColorHighlight="#FEC403"
/>
puis j'ai un itemclicklistener qui fonctionne très bien et je tiens à souligner le textview qui a été cliqué en procédant comme suit.
public void onItemClick(AdapterView<?> adaptview, View clickedview, int position,
long id) {
//TODO: ACTIONS
String pathtofile = (String) adaptview.getItemAtPosition(position);
View rowview = (View) adaptview.getChildAt(position);
rowview.setSelected(true);}
je voulais de la couleur de surbrillance à "#FEC403" dans le fichier xml (qui est une lumière orange) mais le highlightcolor est toujours gris. alors, comment définir la highlightcolor correctement?
merci d'avance
EDIT:
voici comment je l'ai fait finalement:
c'est mon Élément de liste fichier xml:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/rowselector"
>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/musicicon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/musicicon"
android:paddingLeft="3px"
/>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="26px"
android:layout_marginLeft="3px"
android:singleLine="true"
android:ellipsize="end"
android:focusable="false"
/>
et la rowselector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@color/orange" />
</selector>
et à la fin mon OnItemClick est très court maintenant:
@Override
public void onItemClick(AdapterView<?> adaptview, View clickedview, int position,
long id) {
//TODO: ACTIONS
clickedview.setSelected(true);
}
double possible de Android ListView Sélecteur de Couleur
Malheureusement, cette technique ne peut pas être utilisé pour mettre en évidence plusieurs éléments dans la liste, car un seul élément peut être sélectionné à la fois.
Malheureusement, cette technique ne peut pas être utilisé pour mettre en évidence plusieurs éléments dans la liste, car un seul élément peut être sélectionné à la fois.
OriginalL'auteur mad | 2010-12-10
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser un
Selector
.Cette question et sa réponse pourrait aider....
OriginalL'auteur st0le
OriginalL'auteur ununiform
Dans votre Activité:
De votre Carte:
Bonne chance!
OriginalL'auteur ngocquynh_183
C'est comment il devrait ressembler à l'aide du sélecteur:
Créer un fichier dans drawable appelé
selector_listview_item.xml
, qui ressemble (changer les couleurs de votre propre):Maintenant dans votre mise en page qui décrit la ligne de la liste (par ex. layout_list_row.xml), Sur la racine de mise en page ajouter le
android:background="@drawable/selector_listview_item"
, de Sorte que la mise en page pourrait ressembler à quelque chose comme:(Remarque: vous pouvez ajouter
android:focusable="false"
sur vous des éléments à l'intérieur de cette listview ligne, de faire la ligne cliquable, comme mentionné ici)Fait.
OriginalL'auteur Mercury