我正在尝试过滤掉不以autocompletetextview文本框中输入的文本开头的结果。初始hashmap通过asynctask加载,该asynctask在程序加载后在后台运行。这是我的performFilter代码:
try{
// Note the clone - original list gets stripped
for(Iterator<Map.Entry<String, String>> it = dataToSearch.entrySet().iterator(); it.hasNext();)
{
Map.Entry<String, String> entry = it.next();
String lowercase = entry.getValue().toLowerCase();
if(lowercase.startsWith(constraint.toString().toLowerCase()))
searchMap.put(entry.getKey(), entry.getValue());
it.remove();
}
}catch (Exception e){
Log.d("HUS","EXCEPTION "+e);
}
FilterResults filterResults = new FilterResults();
filterResults.values = searchMap;
filterResults.count = searchMap.size();
我的问题是,初始哈希映射的所有结果都显示出来,或者没有结果显示出来。我可能做错了什么?当初始hashmap发生更改时,异步任务会调用adapter.notifyDatasetChanged,但我仍然认为过滤结果将基于textview中的文本开头。任何帮助表示赞赏。