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
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)' –
@ 911DidBush was meinst du mehr als eine Zeichenfolge übergeben ??? – Lemme
@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? –