Я недавно работал над проектом Android Studio для моих финалов. Я столкнулся с проблемой с одним из моих методов. Одним из моих занятий является занятие с панелью SearchView, ListView, MapView. У меня есть список из трех «поездок» (поездка содержит: название, расстояние, тип [велосипед, пешком, на машине]). MapView показывает трек 3 поездки. Панель SearchView фильтрует ListView в пределах заданной буквы (например, пусть названия трех поездок будут: «AA», «AB», «BB». Если «A» записано в панели поиска, фильтры «List» и только «AA») "," AB "показаны). Но в MapView он фильтрует поездки на карте по первой букве - только когда написана вторая буква.
Пример:
ЕСТЕСТВЕННОЕ СОСТОЯНИЕ:
Панель SearchView: ""
ListView: "AA", "AB", "BB"
MapView показывает трек: "AA "," AB "," BB "
ШАГ 1:
Панель поиска:" A "
Фильтры ListView для:" AA ", «AB»
MapView показывает треки: «AA», «AB», «BB»
ШАГ 2:
Панель поиска: «AB»
Фильтры ListView для: «AB»
MapView показывает дорожки: «AA», «AB»
OnQueryTextChange () ссылка: https://developer.android.com/reference/android/widget/SearchView.OnQueryTextListener
@Override
public boolean onQueryTextChange(String newText) {
filteredAdapter.getFilter().filter(newText);
filteredAdapter.notifyDataSetChanged();
ArrayList<Trip> copy = new ArrayList<>();
for (int i = 0; i < filteredAdapter.getCount(); i++) {
copy.add((Trip) filteredAdapter.getItem(i));
}
filtered.clear();
filtered.addAll(copy);
filteredAdapter.notifyDataSetChanged();
showMarkers();
return false;
}
Я был бы рад получить помощь от кого-либо!