5

sto cercando di aggiornare l'elenco di un AutocompleteTextView utilizzando e ArrayAdapter dinamicamente. Per aggiornare questa vista, utilizzo un TextWatcher per monitorare eventuali modifiche che potrebbero verificarsi in AutocompleteTextView.dinamica AutocompleteTextView con ArrayAdapter e TextWatcher

Il problema è che l'elenco non è l'aggiornamento a tutti e non riesco a capire perché. Ho cercato qualcosa di simile su internet e ho trovato un paio di approcci diversi, ma ancora non riesco a capire perché questo, che dovrebbe essere il più semplice, non funzioni. Qualsiasi spiegazione sarebbe molto apprezzata.

target AVD: API di Google livello 10, Android 2.3.3

Ecco il codice semplificato:

public class AutocompleteActivity extends Activity implements TextWatcher { 
    ArrayAdapter<String> adapter = null; 
    AutoCompleteTextView acTextView = null; 
    ArrayList<String> addresses = new ArrayList<String>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.autocompleteview); 

     acTextView = (AutoCompleteTextView) findViewById(R.id.autocomplete_address); 
     adapter = new ArrayAdapter<String>(this, R.layout.listitem, addresses); 
     adapter.setNotifyOnChange(true); 
     acTextView.addTextChangedListener(this); 
     acTextView.setAdapter(adapter); 
    } 

    @Override 
    public void onTextChanged(CharSequence text, int start, int before, int after) { 
     try { 
      adapter.add("test"); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
+0

nvm, funziona :-( – gioski

+0

Sto facendo qualcosa di simile QUI !!! http://stackoverflow.com/questions/12854336/autocompletetextview-backed-by-cursorloader – toobsco42

risposta

3

nel codice sorgente, TextWatcher viene fornita al AutoCompleteTextView, questo è il vero problema .

Se si guarda il codice sorgente AutoCompleteTextView, troverete AutoCompleteTextView ha la sua propria TextWatcher, denominato "MyWatcher". A causa di ciò, AutoCompleteTextView non può rispondere all'azione di digitazione.

Problemi correlati