AutocompleteTextView dinámico con ArrayAdapter y TextWatcher
Estoy tratando de actualizar la lista de un AutocompleteTextView dinámicamente utilizando y ArrayAdapter. Para actualizar esta vista, utilizo un TextWatcher para supervisar cualquier cambio que pueda ocurrir en AutocompleteTextView.
El problema es que la lista no está actualizando en absoluto y no puedo entender por qué. He estado buscando algo así en Internet y he encontrado un par de enfoques diferentes, pero todavía no puedo entender por qué este, que debería ser el más simple, no está funcionando. Cualquier explicación sería muy apreciada.
- Android: evalúa EditText después de que el usuario termine de editar
- ¿Cómo eliminar inmediatamente el espacio de un edittext si un usuario presiona el espacio?
- ¿Cómo puedo hacer algo, 0.5 segundo después de que el texto cambió en mi EditText?
- Implementación de Text Watcher para EditText
- Android stackoverflow utilizando while loop
Target AVD: nivel de API de Google 10, Android 2.3.3
Aquí está el código simplificado:
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(); } }
- Cómo enmascarar un EditText para mostrar el formato de fecha dd / mm / aaaa
- Cómo dar formato a la entrada de EditText al escribir con separadores de miles (,) en Android?
- Detectar cambios en EditText (TextWatcher ineficaz)
- TextWatcher para más de un EditText
- Detectar retroceso en TextWatcher
- Cómo cambiar TextView texto en DataChange sin llamada atrás TextWatcher Listener
- Android Manejo de muchos campos de EditText en un ListView
- No se puede insertar en Editable
En su código fuente, TextWatcher se suministra a AutoCompleteTextView, este es el problema real.
Si observa el código fuente AutoCompleteTextView, encontrará AutoCompleteTextView tiene su propio TextWatcher, denominado "MyWatcher". A causa de esto, AutoCompleteTextView no puede responder a su acción de escritura.
- Se comprueba un elemento incorrecto al filtrar ListView en android
- ¿Cuál es la mejor manera de esperar a una corrección de ubicación GPS?