Définir une couleur d'arrière-plan à un élément ListView sélectionné dans Android
J'ai une listview qui affiche plusieurs éléments. Maintenant, je veux faire défiler jusqu'à certains besoins spécifiques (par exemple, le 33e). Je sais que cela peut être fait via
myList.setSelection(32);
Mais sur l'INTERFACE utilisateur de l'élément n'a pas de recevoir tout en soulignant (parce qu'il est en mode tactile?!). Comment puis-je appliquer une couleur de fond spécifique pour cet article? J'ai essayé
myList.getSelection().getSelectedView().setBackgroundColor(Color.Red);
mais j'obtiens une exception NullPointerException parce que getSelectedView() renvoie la valeur null. Est-il un moyen pour parvenir à cette mise en surbrillance? J'ai avertir l'utilisateur en quelque sorte le propos de l'article qui est "active"...
source d'informationauteur codie4711
Vous devez vous connecter pour publier un commentaire.
2.Pour appliquer une couleur spécifique à un élément. Vous pouvez utiliser personnalisés listItem.
un. Ensemble personnalisé lisItem pour votre listView:
b. Dans votre mise en page de dossiers, de créer des customizedlistitem.xml
c. Dans votre dossier drawable, créer customizedbackground.xml comme ceci:
d. Assurez-vous que la couleur ROUGE, VERT et NOIR a été défini dans votre projet (vous pouvez le définir dans color.xml en vertu de valeurs de dossier):
Essayer cela, il fonctionnera-
J'ai essayé de la façon suivante et résolu le problème.
Créé un javaBean classe qui reçoit la position. Comme les suivantes.
Puis de La
OnListItemClickListener()
j'ai défini la position de l'élément sélectionné. Comme la suite d'Puis dans la classe d'adaptateur effectuer les opérations suivantes
Essayer celui-ci pour modifier l'arrière-plan des lignes de changement de couleur dans Android affichage de la Liste.
ListView dans le fichier xml:
Créer de nouveaux xml avec listselector nom comme:
Créer colors.xml fichier comme:
Dans votre code java:
Probablement la façon la plus simple est d'utiliser une Liste d'État Drawable pour votre arrière-plan. Cela vous permet d'appliquer des styles différents selon que le contrôle en question est sélectionné /concentré /désactivé /etc.
Pour une introduction à la Liste d'État un drawable, jetez un oeil à cet article.
Changer la ligne
à
Le nullPointerException est probablement parce que vous êtes dans touchmode, setSelection n'a pas vraiment d'sélectionne l'élément sur la liste lorsque vous êtes en mode tactile, c'est juste "regarde", si vous voyez ce que je veux dire.
Tu Dois faire une personnalisation de l'Adaptateur (en créant une classe qui étend la carte que vous utilisez actuellement :] )
Et à votre classe personnalisée, vous devez remplacer le getView(int position, View convertView, ViewGroup parent) méthode, comme ceci:
Dans le code, la variable "lista" est une liste de certains des éléments que j'ai sur ma carte.
Donc, lorsque vous avez terminé, sélectionnez votre article, vous devez appeler le getView pour chaque article que vous avez, ou vous pouvez appeler la méthode invalidateViews de votre listView avant vous définissez la sélection (si vous appelez invalidateViews après la sélection, la sélection sera ignoré (au moins sur touchmode :] ))