具有近似字符串匹配功能的Android autocompletetextview

时间:2012-04-27 08:45:51

标签: android autocompletetextview string-search

我正在开发一个拥有大约8000个印度城市名称的应用程序。当用户输入i时,使用auto complete来帮助用户完成工作。但是一些城市名称的拼写很难为来自其他州的人们猜测。所以我们需要一个近似的字符串匹配来自动完成而不是默认的精确匹配。

例如,有像

这样的名字
  • Thirumayilai
  • Thirunettur
  • Thiruthuraiyur
  • 蒂鲁瓦鲁尔

  • 蒂鲁内尔维利
  • 蒂鲁芒格阿拉姆

如果用户搜索城市'Tirunelveli'但在文本框中键入'Thirunel',则autocompletetextview不会显示名称,并且它会进行精确的字符串匹配。

如何在自动完成下拉列表中获取近似匹配字符串..

2 个答案:

答案 0 :(得分:6)

您需要使用自定义过滤器创建自定义ArrayAdapter(基于Lexographic Distance的过滤器小于某个阈值(例如3)),您需要在适配器的getFilter()方法中返回

答案 1 :(得分:1)

经过大量的搜索和实验,我自己找到了解决方案..

要进行自定义字符串匹配,我们需要一个自定义数组适配器,我们需要extend ArrayAdapter class并编写我们自己的字符串匹配算法。

我们需要为此功能覆盖ArrayAdapter类的getFilter方法,并将getItemgetCount方法添加到我们的自定义适配器类中。