Ratio: 0 / 5

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

En esta tercera parte, vamos a implementar el filtrado de nuestra carta de comidas.

Comenzamos editando fragment_main.xml para agregar nuestro SearchView

Artículo anterior: Android: Listview con búsqueda con SearchView + PHP + MySQL + Imágenes + Cache (parte 2)

...
...
tools:context="ar.com.probandocosas.listviewphpmysql2.MainActivity$PlaceholderFragment" >
   <Spinner
      android:id="@+id/spin_categoria"
      android:layout_width="match_parent"
      android:layout_height="wrap_content" />
   <ListView
...
...

Debemos declarar una nueva Activity

...
...
    android:theme="@style/AppTheme" >
<activity android:name=".SearchableActivity" >
   <intent-filter>
      <action android:name="android.intent.action.SEARCH" />
   </intent-filter>
   <meta-data
      android:name="android.app.searchable"
      android:resource="@xml/searchable"/>
</activity>
<activity android:name="ar.com.probandocosas.listviewphpmysql.MainActivity"
...
...

En nuestra actividad principal, definimos la variables.

...
...
List<String> listaCategorias;
SearchView Busqueda;

@Override
...
...

Y creamos el método que se llamará al momento de buscar.

...
...
public void Filtrar() {
   // Hacemos la consulta con los datos de comida y categoría
   // seleccionados
   TraerDatos datos = new TraerDatos(this);
   String strFiltroCat = "";
   String FiltroComida = Busqueda.getQuery().toString();
   int FiltroCat = spCategorias.getSelectedItemPosition();
   if (FiltroCat != 0) {
      strFiltroCat = String.valueOf(FiltroCat);
   }
   datos.execute(strFiltroCat, FiltroComida);
}
...
...

Creamos una instacia para la nueva activity

...
...
List<String> listaCategorias;
SearchView Busqueda; @Override
...
...
spCategorias = (Spinner) rootView.findViewById(R.id.spin_categoria);
SearchManager searchManager = (SearchManager) getActivity()
   .getSystemService(Context.SEARCH_SERVICE);
Busqueda = (SearchView) rootView.findViewById(R.id.searchView1);
Busqueda.setSearchableInfo(searchManager
   .getSearchableInfo(getActivity().getComponentName()));
Busqueda.setIconifiedByDefault(true);
inicializar();
...
...

Y agregamos los listener del SearchView y del Spinner para realizar las búsquedas.

...
...
inicializar();
spCategorias
   .setOnItemSelectedListener(new OnItemSelectedListener() {
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      Filtrar();
   }
   @Override
   public void onNothingSelected(AdapterView<?> parent) {
   }
});
Busqueda.setOnQueryTextListener(new OnQueryTextListener() {
   @Override
   public boolean onQueryTextSubmit(String query) {
      Filtrar();
      return false;
   }
   @Override
   public boolean onQueryTextChange(String newText) {
      if (TextUtils.isEmpty(newText)) {
         Filtrar();
      }
   return false;
   }
});
return rootView;
...
...

En este punto, ya podemos ejecutar nuestra app y probar el filtrado.

Cuarta y última parte: Android: Listview con búsqueda con SearchView + PHP + MySQL + Imágenes + Cache (parte 4 - última)

 


FacebookMySpaceTwitterDiggDeliciousStumbleuponGoogle BookmarksRedditNewsvineTechnoratiLinkedinRSS FeedPinterest
Pin It