我在列表视图中进行过滤,其中有2行。我想用两条线过滤。如果我在两行中都有不同的字符串 - 过滤工作正常,但如果我在两行中都有等于字符串,我会在搜索时将此列表项重复。我可以做些什么来在过滤后删除这些重复的项目并通过两行进行过滤? 这是我的代码:
private void addToList(){
allImplements = db.getAllImplements();
Collections.reverse(allImplements);
final List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
Map<String, String> map;
for(Implement t: allImplements) {
map = new HashMap<String, String>();
map.put("name", t.getName());
map.put("type", t.getType());
map.put("id", String.valueOf(t.getId()));
map.put("icon", Integer.toString(t.getIcon()));
listMap.add(map);
}
adapter = new SimpleAdapter(this, listMap, R.layout.equip_list_item, new String[] { "icon", "name", "type", "id"}, new int[] { R.id.icon, R.id.firstLine, R.id.secondLine, R.id.equip_id });
listView.setAdapter(adapter);
}
@Override
public boolean onQueryTextChange(String arg0) {
adapter.getFilter().filter(arg0);
return false;
}
答案 0 :(得分:0)
您可以尝试创建扩展SimpleAdapter的adppater类。然后,您可以通过覆盖getFilter()
来改进过滤