Wie wird die Android EditText-Eingabe in einer ListView richtig verarbeitet?
In meiner Anwendung habe ich eine Aktivität zum Hinzufügen / Entfernen / Bearbeiten von Datensätzen in einemSortedMap
. Die Aktivität wird als Erweiterung von @ implementierListActivity
. Ich habe custom @ implementieArrayAdapter
für die Sammlungsgegenstände.
JedenListView
item (das einem zugrunde liegenden Datensatz entspricht) besteht ausTextView
s,EditText
s und einButton
, um den Datensatz selbst zu löschen. Das Layout sieht ungefähr so aus:
ListView
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
Mein Ziel ist es, die Eingaben zu verarbeiten, die ein Benutzer in das @ eingibEditText
s sobald der Benutzer die Bearbeitung beendet hat, d. h. wenn der Benutzer vom @ weg navigiert hEditText
oder der Benutzer hat zurück gedrückt, um die Bildschirmtastatur zu schließen.
Ich habe versucht, dies zu implementieren, indem ichonFocusChanged
, um den im @ sichtbaren Text zu verarbeitEditText
. Diese Methode funktioniert jedoch nicht gut,onFocusChanged
ie @ -Methode wird sehr oft und zufällig aufgerufen, auch bei nicht ausgewählten und nicht bearbeiteten @ -MethodeEditText
s. Dies liegt wahrscheinlich andieser Artikel auf Android Blog davonStackOverflow question.
Gibt es einen besseren Weg, dies zu tun?