Okay, also habe ich eine Funktion, um Suche und Filterung durchzuführen. Es funktioniert alles einwandfrei, bis auf diese eine Zeile am Ende, in der die Liste nach dem Filterung aktualisiert wird. Aber ich kann das nicht tun, da diese eine bestimmte Zeile verhindern, dass alle Elemente in der Recycler -Ansicht angezeigt werden. < /p>
Dies ist der Code und diese Zeile am Ende verursacht den Fehler:private void filterBikes() {
String searchedText = searchViewLocation.getQuery().toString().toLowerCase();
String selectedCategory = spinnerFilterCategory.getSelectedItem().toString();
String selectedSortPrice = spinnerSortPrice.getSelectedItem().toString();
` List filteredList = bikeList.stream()
.filter(p -> TextUtils.isEmpty(searchedText) || p.getName().toLowerCase().contains(searchedText))
.filter(p -> selectedCategory.equals("All bikes") || p.getCategory().equals(selectedCategory))
.collect(Collectors.toList());
if (selectedSortPrice.equals("Sort by price: Low - High")) {
filteredList.sort((p1, p2) -> Double.compare(p1.getPriceHour(), p2.getPriceHour()));
} else if (selectedSortPrice.equals("Sort by price: High - Low")) {
filteredList.sort((p1, p2) -> Double.compare(p2.getPriceHour(), p1.getPriceHour()));
}
adapter.updateList(filteredList); // this line
}
< /code>
Ich habe auch die Aktualisierungsmethode im Adapter erstellt, daher weiß ich nicht, was das Problem ist < /p>
public void updateList(List newList) {
bikeList = newList;
notifyDataSetChanged();
}
< /code>
Ich habe versucht, die Protokollierung durchzuführen, und es wird nur die Filterliste von Sauing beträgt. Die Fahrradgröße wird weitergegeben, ebenso wie die Anzahl der Artikel. Aber sobald ich versuche zu suchen oder zu filtern, funktioniert es nicht.>
Die Aktualisierungsfunktion führt zu einem großen Fehler ⇐ Android
-
- Similar Topics
- Replies
- Views
- Last post