Come gestire correttamente l'input di Android EditText all'interno di un ListView?

Nella mia applicazione ho un'attività per aggiungere / rimuovere / modificare i record all'interno di un SortedMap . L'attività viene implementata come estensione di ListActivity . Ho implementato ArrayAdapter personalizzato per gli elementi di raccolta.

Ogni elemento ListView (che corrisponde a un record sottostante) consiste di TextView s, EditText s e un Button per eliminare il record stesso. Il layout è approssimativamente come segue:

  • Android: come annullare una richiesta di aggiornamento della località con l'intento?
  • GSON gettando "aspettato un nome ma era NUMERO alla colonna 1 linea 1"?
  • Controllare se l'applicazione è aperta durante un evento GCM onMessage?
  • Come riprodurre i file audio direttamente dalla cartella res / raw?
  • Come posso controllare la velocità di scorrimento di recyclerView.smoothScrollToPosition (posizione)
  • La chiamata finale () su un'attività Android non finisce in realtà
  •  ListView ---------------------------------------------------- [TextView] [EditText] [TextView] [EditText] [Button] ---------------------------------------------------- [TextView] [EditText] [TextView] [EditText] [Button] 

    Il mio objective è quello di elaborare l'input di un tipo di utente a EditText s non appena l'utente ha terminato l'editing, cioè quando l'utente ha navigato lontano da EditText o che l'utente ha premuto indietro per respingere la tastiera su schermo.

    Ho provato a implementarlo gestendo onFocusChanged , per elaborare il text visibile in EditText . Tuttavia questo metodo non funziona bene, il metodo onFocusChanged viene chiamato molto spesso e casualmente, anche per EditText non selezionato e non modificato. Questo è probabilmente dovuto a questo articolo su Android Blog da questa domanda di StackOverflow .

    C'è un modo migliore per farlo?

  • Imansible eseguire un'applicazione in titanio
  • Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ layout
  • Come abbinare int a enum
  • Come sovrascrivere l'animation di attività di inserimento se è indicato dal lanciatore
  • Come accedere al contatore di interazione NFC NTAG213?
  • DataPicker si blocca in samsung con android 5.0
  • One Solution collect form web for “Come gestire correttamente l'input di Android EditText all'interno di un ListView?”

    TextView , che estende EditText , include il metodo public void addTextChangedListener (TextWatcher watcher) che potrebbe essere utile per te.

    Non l'ho mai usato prima, ma sembra che questo venga chiamato each volta che l'utente modifica il TextView e quindi potresti elaborarlo each volta che cambia. Ciò può causare un sacco di overhead se viene chiamato each volta che un utente elimina o aggiunge un carattere, ma può essere la soluzione più semplice.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.