Android AutoCompleteTextView onItemSelectedListener no se dispara con un teclado bluetooth

Tengo una aplicación sencilla que contiene sólo un AutoCompleteTextView (código de abajo). Tengo OnItemClickListener y OnItemSelectedListener definidos. Al hacer clic en los elementos individuales de las sugerencias desplegables se activa el evento onItemClick . Sin embargo, con un teclado bluetooth, utilizar las teclas de flechas para navegar a un elemento dado no parece activar el evento onItemSelected (los registros no se ven para este evento).

¿Qué desencadena este evento onItemSelected ? Yo estaba bajo la impresión de que un highlight en uno de los elementos desplegables lo hace, pero que no parece ser el caso.

Si OnItemSelectedListener no es el oyente de evento correcto para el elemento resaltado, ¿hay alguna que satisface este requisito?

Activity_main.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <AutoCompleteTextView android:id="@+id/autoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout> 

MainActivity.java

 public class MainActivity extends Activity { String[] options = {"a1", "a2", "a3", "b1", "b2", "b3", "b4", "b5"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // An adapter object ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, options); AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); autoCompleteTextView.setAdapter(adapter); autoCompleteTextView.setThreshold(1); // Set the listeners autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d("OnItemClick", "[AutoCompleteTextView] Item clicked"); } }); autoCompleteTextView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Log.d("onItemSelected", "[AutoCompleteTextView] Item selected"); } @Override public void onNothingSelected(AdapterView<?> parent) { Log.d("onNothingSelected", "[AutoCompleteTextView] Nothing here"); } }); } } 

Debe utilizar onFocusChangeListener para esto. On onItemSelectedListener es para las vistas seleccionables (como las de listview).

  • Establecer el valor del campo oculto con los datos correspondientes del elemento seleccionado de AutoCompleteTextView
  • AutoCompleteTextView - Mostrar sugerencias después de la selección
  • AutoCompleteTextView no mostrar el resultado incluso cuando el ArrayAdapter se actualiza
  • AutoCompleteTextView con lista personalizada: cómo configurar OnItemClickListener
  • Autocompletetextview setonitemselectedlistener no funciona
  • Crash con Android 4.1 con ArrayMap
  • Diseño de material Android: eliminar animación de sugerencias
  • Sugerencias de AutoCompleteTextView en modo horizontal
  • Adaptador MultiAutoCompleteTextView notifyDataSetChanged
  • AutoCompleteTextView respaldado por CursorLoader
  • AutoCompleteTextView no muestra ningún elemento desplegable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.