gpt4 book ai didi

Android 自动完成匹配选项

转载 作者:搜寻专家 更新时间:2023-11-01 07:56:49 24 4
gpt4 key购买 nike

我在我的应用程序中使用了 AutoCompleteTextView,它提供了国家/地区名称建议。我的自动完成是将输入的文本与建议列表中的每个单词进行匹配。例如,如果我输入两个字母“ar”,我会得到“沙特阿拉伯”作为建议之一。

有没有办法让 AutoCompleteTextView 尝试只从第一个单词开始匹配?也就是说,建议必须以输入的文本开头,在我之前的例子中,我只得到像“亚美尼亚”、“阿根廷”和“阿鲁巴”这样的建议。

最佳答案

问题是 ArrayAdapter 中的 Filter 实现首先检查字符串是否以搜索约束开头,然后拆分字符串并检查每个单词。

来自 ArrayAdapter.java:

// First match against the whole, non-splitted value
if (valueText.startsWith(prefixString)) {
newValues.add(value);
} else {
final String[] words = valueText.split(" ");
final int wordCount = words.length;

// Start at index 0, in case valueText starts with space(s)
for (int k = 0; k < wordCount; k++) {
if (words[k].startsWith(prefixString)) {
newValues.add(value);
break;
}
}
}

正如 Daniel 所提到的,您需要实现自己的适配器来实现 Filterable。我创建了一个示例来实现您正在寻找的行为。 You can find it here.它重用了 ArrayAdapter 中的大部分代码,但省略了拆分字符串的部分。

关于Android 自动完成匹配选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com