2010-07-28 7 views
0

Dans une application Android, j'ai une ListActivity. Après l'avoir créé, j'ai un récepteur de diffusion qui doit désactiver certains éléments de la liste. J'ai donc pice code IKE celui-ci:Désactivation de la mise au point dans TextView

View child = getListView().getChildAt(i); 
child.setEnabled(false); 

Il fonctionne de la façon dont il change la couleur des vues handicapées au gris. Mais je dois éviter que ces éléments puissent être cliqués. J'ai donc essayé d'appeler

child.setFocusable(false); 

ou

child.setClickable(false); 

mais dans les deux cas onListItemClick est appelé après avoir appuyé sur sur une option désactivée.

Comment puis-je éviter que la méthode onListItemClick soit appelée lorsque ces textviews sont cliqués?

Merci.

Répondre

1

La désactivation des vues n'a aucun effet sur l'événement onListItemClick.

L'enfant doit être désactivé par l'adaptateur que vous utilisez pour remplir la liste.

Voir http://developer.android.com/reference/android/widget/ListAdapter.html#isEnabled(int)

Cette méthode doit être remplacée pour retourner false pour chaque élément que vous ne voulez pas être cliquable. Vous devez également ajouter une méthode à votre adaptateur comme setEnabled(int position, boolean enabled)