2011-11-03 10 views
7

Estoy usando un filtro de texto en un ListView y me gustaría deshacerme de la vista emergente que muestra el texto del filtro. ¿Hay alguna manera de eliminar esta vista?¿Cómo elimino el texto emergente del filtro listview?

un código de ejemplo:

ArrayList<String> buildingNames = new ArrayList<String>(); 
    ListView list = (ListView)findViewById(R.id.list); 

    list.setAdapter(new ArrayAdapter<String>(this, R.layout.menu_item, buildingNames)); 
    list.setTextFilterEnabled(true); 

    list.setFilterText("test_filter"); 

Cuando me puse el texto del filtro, una vista muy feo aparece en la parte inferior de la ListView que muestra lo que el texto actual del filtro es:

ListView filter text popup

+0

Proporcione algún código fuente de ejemplo que esté utilizando aislado para mostrar el problema al que se enfrenta. – pkk

Respuesta

8

he encontrado la respuesta aquí: http://markmail.org/message/7uju6bmmaswag2lu:

Al llamar a setTextFilterEnabled() solicita esta ventana emergente. Si no lo quiere, desactive el filtrado de texto. Esta es una función interactiva para el usuario. No está destinado a ser utilizado programáticamente. Si quieres filtrar programáticamente su adaptador, llame getFilter() en el adaptador de directamente (si su adaptador admite el filtrado.)

Romain individuo

Así que en lugar de utilizar setTextFilterEnabled que necesita para trabajar con el filtrar directamente así:

CustomAdapter customAdapter = (customAdapter)myListView.getAdapter(); 
Filter filter = customAdapter .getFilter(); 
filter.filter("search string"); 
0

tratar de hacer este cambio

@Override 
     public boolean onQueryTextChange(String newText) { 
      System.out.println("tap"); 
      yourAdapter ca = (yourAdapter)listview.getAdapter(); 

      if (TextUtils.isEmpty(newText)) { 
       System.out.println("isEmpty"); 
       //listview.clearTextFilter(); 
       ca.getFilter().filter(null); 
      } else { 

       ca.getFilter().filter(newText); 
       //listview.setFilterText(newText); 

      } 
      return true; 
     } 
Cuestiones relacionadas