2016-12-01 7 views
0

Ich habe einen benutzerdefinierten Filter.Wie zwei Wörter aus verschiedenen Array filtern

public void filter(String filter) { 
     Restau.clear(); 
     if (filter != null && filter.trim().length() > 0) { 
      for (restauInfoDB element : tempRestList) { 
       if (element.getOh().toLowerCase().contains(filter) ||element.getCost().toLowerCase().contains(filter) || element.getResname().toLowerCase().contains(filter) || element.getType().toLowerCase().contains(filter) || element.getResloc().toLowerCase().contains(filter)) 
        Restau.add(element); 
      } 
     } else { 
      Restau.addAll(tempRestList); 
     } 
     super.notifyDataSetChanged(); 
    } 

Dieser benutzerdefinierte Filter filtert nur von einem Element. Zum Beispiel suche ich "Burger" es wird nur in einem Element filtern. Ich möchte zwei Worte filtern oder mehr zum Beispiel „Burger Samsung“ Ich will jedes Element filtern, die „Burger“ und „Samsung“

Restau.add(element); ist der Code meiner gefilterten Liste in CustomListView

+0

Wenn Sie wollen, dass Ihre Filter-Methode in der Lage sein, durch mehrere Wörter zu filtern, sollten Sie wahrscheinlich ändern es sp, dass Sie mehr als eine Zeichenfolge an diese Methode übergeben können. 'Public Void Filter (String ... Filter)' –

+0

@ 911DidBush was meinst du mehr als eine Zeichenfolge übergeben ??? – Lemme

+0

@Lemme Sie möchten Ihre Filtermethode nach mehreren Wörtern filtern können, aber es akzeptiert nur eine Zeichenfolge als Argument. Es würde viel mehr Sinn machen, wenn es mehrere Strings aka Wörter akzeptieren würde. Auf diese Weise müssten Sie die Filterzeichenfolge nicht innerhalb der Methode aufteilen. Oder ist die Filtermethode eine überschriebene Methode und Sie können die Signatur nicht ändern? –

Antwort

0

Sie hat könnte versuchen, etwas wie die folgenden, mit lists:

+0

Ich bekomme Fehler beim Aufruf der 'adapter.filter (Text);' kann nicht angewendet werden auf '(java.lang.String)' – Lemme

+0

Nun, das ist, weil diese Version eine Liste von Zeichenfolgen akzeptiert. Sie könnten es ändern, um stattdessen ein Array von Strings zu akzeptieren, oder tun Sie, was @ 911DidBush mit einem Vararg-Parameter vorgeschlagen hat, "String ... filter" – Jamie

+0

Entschuldigung dafür, dass ich ein Neuling bin. Welchen besonderen Code sollte ich ändern? – Lemme

Verwandte Themen