Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 7th, 2012  |  syntax: None  |  size: 1.82 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Searching / filtering ListView by multiple criterias
  2. public class PlacesActivity extends Activity{
  3. private EditText SearchText;
  4. private RelativeLayout search;
  5. private ImageButton btnSearchClose;
  6.  
  7. @Override
  8. public void onCreate(Bundle savedInstanceState) {
  9.  
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.places_layout);
  12.  
  13. SearchText = (EditText) findViewById(R.id.SearchBox);
  14. SearchText.addTextChangedListener(filterTextWatcher);
  15.  
  16. btnSearchClose = (ImageButton)findViewById(R.id.SearchClose);
  17. placesListView = (ListView) findViewById(R.id.PlacesListView);
  18.  
  19. }
  20.  
  21. private TextWatcher filterTextWatcher = new TextWatcher() {
  22. public void afterTextChanged(Editable s) {
  23.     adapter.getFilter().filter(s);
  24. }
  25.  
  26.     private final class MyFilter extends Filter {
  27.     @Override
  28.     protected FilterResults performFiltering(CharSequence constraint) {
  29.         FilterResults oReturn = new FilterResults();
  30.         ArrayList<Routes> results = new ArrayList<Routes>();
  31.         orig = routes;  
  32.         }
  33.  
  34.         if (constraint != null) {
  35.             if (orig != null && orig.size() > 0) {
  36.                 for (Routes o : orig) {
  37.                     String Constr = constraint.toString();
  38.                     constraint = Constr.subSequence(0, Constr.length());
  39.  
  40.                     String FromRoute = o.getTripFrom().toLowerCase();
  41.                     if (FromRoute.startsWith((String) constraint)) {
  42.                         results.add(o);
  43.                     }  
  44.                 }
  45.                 oReturn.values = results;
  46.             }
  47.         }
  48.         return oReturn;
  49.     }
  50.  
  51.     @Override
  52.     protected void publishResults(CharSequence constraint, FilterResults results) {
  53.         ArrayList<Routes> objects = new ArrayList<Routes>();
  54.         objects = (ArrayList<Routes>)results.values;
  55.         routes = objects;
  56.         notifyDataSetChanged();
  57.     }
  58. }