Android: Evita que el campo de texto aparezca al ingresar texto en un SearchView

Hola desarrolladores de Android,

Tengo un problema con el widget Android SearchView . Lo que estoy tratando de hacer es adjuntar un filtro de texto "en vivo" a mi ListView (la entrada de texto actualiza automáticamente los resultados del filtro). Funciona realmente bien y no fue un gran esfuerzo para conseguir que funcione en mi ListActivity con estas líneas:

private SearchView listFilter; this.listFilter = (SearchView) findViewById(R.id.listFilter); this.listFilter.setOnQueryTextListener(this); this.listFilter.setSubmitButtonEnabled(false); this.getListView().setOnItemClickListener(this); this.getListView().setTextFilterEnabled(true); // from OnQueryTextListener public boolean onQueryTextChange(String newText) { if (newText.isEmpty()) { this.getListView().clearTextFilter(); } else { this.getListView().setFilterText(newText); } return true; } 

Y aquí la declaración del widget xml

 <SearchView android:id="@+id/listFilter" android:layout_width="match_parent" android:layout_height="wrap_content" android:iconifiedByDefault="false" android:queryHint="enter text to filter" /> 

Ahora lo que mi problema es que cada vez que introdujo texto en el SearchView, un extraño campo de texto aparece instantáneamente mostrando el mismo texto que acabo de entrar que es un poco inútil ya que puedo ver mi entrada en el SearchView en sí y en parte bloquea el Vista en mi lista de entradas, que es sólo molesto.

¿Hay alguna forma de evitar que el campo de texto aparezca al escribir en el SearchView? No pude encontrar ninguna propiedad ni en las opciones de widget definidas por XML ni en la referencia de clase de Java.

Sé que hay otra manera de proporcionar la funcionalidad de filtro mediante EditText y TextWatcher, pero luego tengo que manejar el filtrado por mí mismo y no podría beneficiarse de la SearchView manejo de mí.

Cualquier sugerencia es apreciada. Atentamente

Felix

Descubrí cómo deshacerse de esa fea ventana emergente. El truco es trabajar con el filtro directamente. El código abajo asume que usted ha aplicado filtrado en su customAdapter.

 public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { m_listView.clearTextFilter(); } else { ContactsAdapter ca = (ContactsAdapter)lv.getAdapter(); ca.getFilter().filter(newText); //following line was causing the ugly popup window. //m_listView.setFilterText(newText); } return true; } 
  • El widget de búsqueda no está funcionando en el release apk
  • Cómo eliminar la flecha HomeAsUpButton de ActionBar Sherlock cuando se establece un ActionView para la búsqueda?
  • Cómo realizar T9 Búsqueda de contactos por número en Android
  • Diseño del widget SearchView mediante la biblioteca de soporte v21
  • Barra de búsqueda personalizada tiene una brecha entre el pulgar y el progreso
  • Comprobar si el dispositivo Android tiene botón de hardware de búsqueda
  • Personalizar seeekbar enpoints
  • SearchView quita la línea de enfoque azul y muestra el cursor en determinada posición
  • Desactivación de SearchView
  • Cómo hacer que Google Play Store App como el menú de acciones de búsqueda y el diseño del diálogo de búsqueda
  • Cómo filtrar texto en un ListView correctamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.