Dans mon application, j'ai une activité pour ajouter/supprimer/modifier des enregistrements à l'intérieur d'un SortedMap
. L'activité est implémentée comme une extension de ListActivity
. J'ai implémenté ArrayAdapter
personnalisé pour les éléments de collection.Comment gérer correctement l'entrée Android EditText dans un ListView?
Chaque élément ListView
(ce qui correspond à un enregistrement sous-jacent) se compose de TextView
s, EditText
s, et un Button
pour supprimer l'enregistrement lui-même. La mise en page est à peu près comme suit:
ListView
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
Mon but est de traiter l'entrée d'un utilisateur tape au EditText
s dès que l'utilisateur terminé l'édition, à savoir lorsque l'utilisateur a naviguer loin de la EditText
ou l'utilisateur a pressé de rejeter le clavier à l'écran.
J'ai essayé d'implémenter ceci en traitant onFocusChanged
, pour traiter le texte visible dans le EditText
. Cependant cette méthode ne fonctionne pas bien, la méthode onFocusChanged
est appelée très souvent et de manière aléatoire, même pour & non sélectionné EditText
s. Ceci est probablement dû à this article on Android Blog à partir de ce StackOverflow question.
Y a-t-il une meilleure façon de procéder?
essayé, grande mise en garde est que vous ne pouvez pas faire la différence entre les « changements » artificiels causés par le listview et de véritables changements par l'utilisateur. La vérification du nombre ne fonctionnera pas, car l'utilisateur pourrait supprimer toute la ligne avec tout sélectionner. –