2010-10-08 5 views
5

J'ai une vue de liste. Dans cette vue de liste, je dois griser et désactiver certains éléments, et activer les éléments de liste de repos avec une couleur séparée. Comment faire ça?Désactivation et suppression des éléments de liste

+0

Comment générez-vous la liste? Programmatiquement dans une activité Java ou avec une ressource XML? – methode

Répondre

5

Vous devez écrire un adaptateur personnalisé qui étend BaseAdapter pour votre ListView. Pour désactiver certains éléments, vous devez remplacer le "boolean isEnabled (int position)" dans cet adaptateur, et retourner false pour chaque position que vous souhaitez être désactivé. En ce qui concerne la modification de la couleur d'arrière-plan pour certains éléments de liste: vous pouvez stocker la valeur de couleur d'arrière-plan dans la structure de données que vous affichez. Dans la méthode 'getView()' de votre adaptateur personnalisé, vous devez vérifier cette valeur de couleur pour l'élément actuel et renvoyer une vue avec le jeu de couleurs d'arrière-plan correct. Ou vous pouvez simplement appeler 'getChildAt()' dans ListView, récupérer l'objet View pour l'élément désiré dans la liste et changer sa couleur d'arrière-plan. Je pense que je préfère utiliser la solution précédente. N'oubliez pas d'appeler 'notifyDataSetChanged()' sur l'adaptateur de votre ListView après avoir effectué les modifications comme ceci.

+0

merci beaucoup! ça a marché! – mdv

Questions connexes