java检查Hashmap中的键是否在AutoCompleteTextView中键入
我创建了一个HashMap<String, String>
,我预先填充了它
我想让我的AutoCompleteTextView
告诉我,因为我正在键入它是否在HashMap中。以下是我目前的代码:
autocomplete.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length() > 0){
if (map_clients.containsKey(s)){
Toast.makeText(context, "He's here", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(context, "He's not here", Toast.LENGTH_SHORT).show();
}
}
else {
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
它总是告诉我“他不在这里”,即使当我完全键入文本或从自动完成中选择文本时
# 1 楼答案
我已将其更改为text=s.toString(); 我想是因为我把HashMap放进去了<;字符串,字符串>;而不是CharSequence
# 2 楼答案
您需要使用树映射来存储数据,然后对数据进行排序,然后从中可以从代码中寻找最佳匹配
您的另一个选择是使用SortedList或array,并使用binarySearch实现以提高速度