Obtener la sugerencia actual de `AutoCompleteTextView`

¿Cómo obtienes la sugerencia superior actual en un AutoCompleteTextView ? Lo tengo sugeriendo artículos, y tengo un oyente de cambio de texto registrado. También tengo una lista en la misma pantalla. Mientras escriben, quiero desplazar la lista a la "mejor" sugerencia actual. Pero no puedo averiguar cómo acceder a las sugerencias actuales, o al menos la sugerencia superior. Supongo que estoy buscando algo como AutoCompleteTextView.getCurrentSuggestions() :

 autoCompleteTextView.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { String currentText = autoCompleteTextView.getText(); String bestGuess = autoCompleteTextView.getCurrentSuggestions()[0]; // ^^^ mewthod doesn't exist doSomethingWithGuess(bestGuess); } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // do nothing } public void afterTextChanged(Editable s) { // do nothing } }); 

2 Solutions collect form web for “Obtener la sugerencia actual de `AutoCompleteTextView`”

He hecho lo que quieres hacer con el código siguiente:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.autocomplete_1); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES); AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit); textView.setAdapter(adapter); adapter.registerDataSetObserver(new DataSetObserver() { @Override public void onChanged() { super.onChanged(); Log.d(TAG, "dataset changed"); Object item = adapter.getItem(0); Log.d(TAG, "item.toString "+ item.toString()); } }); } 

Item.toString imprimirá el texto que se muestra en el primer elemento.

Tenga en cuenta que esto sucederá aunque no esté mostrando las ventanas emergentes (sugerencias) todavía. Además, debe comprobar si hay elementos que pasaron los criterios de filtro (también conocido como entrada del usuario).

Para resolver el primer problema:

  int dropDownAnchor = textView.getDropDownAnchor(); if(dropDownAnchor==0) { Log.d(TAG, "drop down id = 0"); // popup is not displayed return; } //do stuff 

Para resolver el segundo problema, use getCount> 0

AutoCompleteTextView no se desplaza hacia abajo hasta la mejor selección, pero reduce la selección a medida que escribe. Aquí hay un ejemplo de ello: http://developer.android.com/resources/tutorials/views/hello-autocomplete.html

Como lo veo de AutoCompleteTextView no hay manera de obtener la lista actual de sugerencias.

La única manera parece estar escribiendo la versión personalizada de ArrayAdapter y pasarla a AutoCompleteTextView.setAdapter (..). Esta es la fuente de ArrayAdapter . Sólo debe cambiar un método en la clase interna ArrayFilter.performFiltering () para que exponga FilterResults:

.. añadir campo a la clase interna ArrayFilter:

 public ArrayList<T> lastResults; //add this line 

.. antes del final del método performFiltering:

  lastResults = (ArrayList<T>) results; // add this line return results; } 

Usándolo así (ejemplo adaptado del enlace):

 AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country); CustomArrayAdapter<String> adapter = new CustomArrayAdapter<String>(this, R.layout.list_item, COUNTRIES); textView.setAdapter(adapter); // read suggestions ArrayList<String> suggestions = adapter.getFilter().lastResult; 
  • Barra de Acción Android SearchView as Autocomplete?
  • Android: ¿Cómo hacer un AutoCompleteTextView SingleLine?
  • Cierre el teclado al desplazarse en la lista desplegable de autocompletetextview en Android
  • Utilizar un adaptador de lista personalizado con AutoCompleteTextView y mantener la funcionalidad del auto completo trabajando igual
  • Android - Autocompletar con contactos
  • Eclipse 3.6 frecuentemente se bloquea durante Content Assist
  • Cómo conseguir qué carácter es conseguir suprimido en backspace en android
  • Cómo ocultar los recursos de android.R en Android Studio 1.3+ autocomplete
  • Evento de clic de AutoCompleteTextView en Android
  • Android: ¿Cómo enviar solicitudes a la API de Google cuando un usuario deja de escribir?
  • Android edittext - selecciona el número de teléfono del contacto (con autocompletado)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.