MultiAutoCompleteTextView

MultiAutoCompleteTextView

我有一个与MultiAutoCompleteTextView绑定的TextWatcher和一个适配器,该适配器根据字段中键入的内容从数据库返回内容。一切正常,但是我正在寻找一种更改默认令牌定义行为的方法,因此,当用户在令牌中的某处点按某个位置并添加一个字符时,整个令牌将被视为查询输入,而不是文本从最左边的标记到光标。

这是一个更具体的示例:


我有以下数据:a,b,aa,ab,aab,abb,aba,bb
我输入了以下令牌:aa,bb
我将光标放在两个a之间(即a | a)
我输入字母“ b”
我得到以下建议:ab
我期待一个建议:aba


我希望我能解释得足够好。我做了一个小的示例项目,没有花哨的东西,只有默认值和简单的String数组,并且我有相同的行为,这似乎与文档如何定义与光标位置有关的标记是一致的。

那么,是否存在一种可靠的方法来包含以我的示例中描述的另一种方式返回的建议?甚至我们的SO标签系统也是如此。

最佳答案

您需要使用MultiAutoCompleteTextView.Tokenizer功能在MultiAutoCompleteTextView上设置自定义setTokenizer()。覆盖findTokenStartfindTokenEnd函数,以确保它捕获正在修改的整个文本。

09-25 16:45