java - 如何将搜索过滤器面板连接到 ArrayList并在 ExpandableListView 中显示结果?
问题描述
好吧,也许标题有点复杂。我将尝试在这里解释我需要什么。我有一个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;
}
});
}
解决方案
推荐阅读
- ios - SceneKit:在节点边缘上获取点
- c++ - 我的计数器没有被 str.length() 正确划分。C++
- reactjs - react redux - 我尝试删除一个 Item 其他项目被删除并且 NaN 总共出现
- node.js - 如何在本地运行节点异步功能?
- r - 对多个 AutoTuning 实例进行基准测试
- apache - 如何使用条件重定向 .htaccess 中的 URL?
- angular - Angular Template Forms ,根据配置有条件地渲染一些字段
- git - 如何在 Visual Studio(使用 Git)中为特定文件类型使用自定义差异工具?
- javascript - 反应问题:未定义的值将数据传递到道具
- python-3.x - ValueError:在熊猫中创建新列时使用序列设置数组元素