#java #android #arraylist #filter #android-listview
#java #Android #arraylist #Фильтр #android-listview
Вопрос:
Ну, может быть, название немного сложное. Я попытаюсь объяснить, что мне здесь нужно. У меня есть ArrayList<PlayerParameters>
, в котором хранятся PlayerParameters
объекты класса, и мой ExpandableListView отображает некоторые строковые значения из этого класса (имя, возраст, город и т.д.) Я хочу отфильтровать свои элементы по значениям. Я нашел учебное пособие, в котором рассказывается, как создать панель поиска: https://medium.com/@makkenasrinivasarao1/expandablelistview-with-checkbox-radiobutton-in-android-af9ec9d81ddf. Вопрос в том, как подключить эту панель к моему ArrayList и ExpandableListView. Это фрагмент кода, в котором я помещаю свои данные в ExpandableListView.
public void onCallback(ArrayList<PlayerParameters> playersList, ArrayList<String> playersNames) {
listDataHeader = playersNames;
String[] listDataHeaderArray = new String[listDataHeader.size()];
playersNames.toArray(listDataHeaderArray);
Collections.sort(listDataHeader);
listDataChild = new HashMap<String, List<String>>();
HashMap<String, ArrayList<String>> playerInfo = new HashMap<String, ArrayList<String>>();
for (PlayerParameters j : playersList) {
ArrayList<String> infoList = new ArrayList<String>();
infoList.add("Nickname: " j.getNickname());
infoList.add("Age: " j.getAge());
infoList.add("City: " j.getCity());
playerInfo.put(j.getName(), infoList);
}
for (int i = 0; i < listDataHeader.size(); i ){
listDataChild.put(listDataHeader.get(i), playerInfo.get(listDataHeader.get(i)));
}
ExpandableListView expListView = view.findViewById(R.id.lvExp);
listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild);
expListView.setAdapter(listAdapter);
expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
return false;
}
});
}
Комментарии:
1. вы должны изменить свой адаптер и добавить фильтр для отображаемых элементов