Búsqueda / filtrado ListView por varios criterios

Actualmente tengo un diseño con un ListView y un widget EditText. Los objetos del ListView contienen ubicaciones de salida y destinos. El EditText se utiliza para filtrar las ubicaciones de salida. Me gustaría añadir otro widget de EditText para poder filtrar la lista tanto por las ubicaciones de salida como por los destinos. ¿Alguna idea de cómo agregar otra clase de filtro y filtrar el contenido de ListView por las salidas y luego por los destinos?

public class PlacesActivity extends Activity{ private EditText SearchText; private RelativeLayout search; private ImageButton btnSearchClose; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.places_layout); SearchText = (EditText) findViewById(R.id.SearchBox); SearchText.addTextChangedListener(filterTextWatcher); btnSearchClose = (ImageButton)findViewById(R.id.SearchClose); placesListView = (ListView) findViewById(R.id.PlacesListView); } private TextWatcher filterTextWatcher = new TextWatcher() { public void afterTextChanged(Editable s) { adapter.getFilter().filter(s); } private final class MyFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults oReturn = new FilterResults(); ArrayList<Routes> results = new ArrayList<Routes>(); orig = routes; } if (constraint != null) { if (orig != null && orig.size() > 0) { for (Routes o : orig) { String Constr = constraint.toString(); constraint = Constr.subSequence(0, Constr.length()); String FromRoute = o.getTripFrom().toLowerCase(); if (FromRoute.startsWith((String) constraint)) { results.add(o); } } oReturn.values = results; } } return oReturn; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { ArrayList<Routes> objects = new ArrayList<Routes>(); objects = (ArrayList<Routes>)results.values; routes = objects; notifyDataSetChanged(); } } 

Usted necesita escribir su propio BaseAdapter que se extiende BaseAdapter . Puede ver cómo un CursorAdapter (que es un Filterable pero no admite cambiar / añadir filtros).

CursorAdapter http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/widget/CursorAdapter.java#CursorAdapter

  • Android: lista clara en Listadapter
  • Pie de página debajo de la vista de lista fija en la parte inferior de la pantalla
  • Cambio de fondo del elemento de vista de lista de Android
  • Elemento de ListView Estado de LongClick para el selector
  • Android, Custom ListAdapter obtener TextView-Text
  • ¿Cómo puedo añadir un encabezado pegajoso a mi ListView?
  • ¿Cómo puedo hacer que un elemento específico del cajón de navegación aparezca seleccionado?
  • ListView dinámico en Android Studio: Selección de elemento aleatorio y vista de lista de actualizaciones
  • ¿Cómo puedo añadir elementos en una vista de lista para la aplicación de Android?
  • Mantenga un valor EditText en un ListView
  • ListView elemento con un botón en él se traga eventos de contacto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.