如何从自动完成文本字段中获取完整的选定文本?
如果我使用getText(),我只获得用户目前输入的几个字母。
示例:我写" flo"然后选择" Flowers"从列表中,但getText()给了我" flo"
AutoCompleteTextField auto = new AutoCompleteTextField(arrayWithNames);
auto.setMinimumLength(4);
auto.addListListener((ActionEvent evt1) -> {
String lookedFor = auto.getText();
Hashtable<String,Object> match[] = findMatch(lookedFor);
if(hMatch.length>0){
contElements.removeAll();
for (Hashtable<String, Object> Match1 : match) {
...
...//fill the Container with the names found
...
}
}
});
工作原理
我使用自动完成TF作为搜索按钮。 我有一个包含列表中所有名称的数组。 然后我用数组填充Auto。 用户从Auto中选择一个名称,然后我搜索正在&#34; lookingFor&#34;使用findMatch()。它返回一个包含找到的条目的新数组。
我需要列表中的完整名称,所以我可以使用findMatch()方法,但是当我使用Auto中的getText()时,它只返回用户输入的字母,而不是整个名称,所以我的方法不起作用,因为我比较整个字符串。 (我正在使用Auto,因为如果人们只记得他们正在寻找的名称的一部分,那将非常方便)
答案 0 :(得分:1)
如果您继承AutoCompleteTextField
,则可以通过getSuggestionModel().getItemAt(getSuggestionModel().getSelectedIndex())
在内部访问所选文本。现在,您可以在派生类上定义public
getter方法getSelectedText()
或其他内容。
答案 1 :(得分:0)
我不确定您是否正确使用了AutoCompleteTextBox。
AutoCompleteText框的全部用途是帮助您帮助用户从有效请求列表中进行选择,
在用户准备好提交AutoCompleteTB所在的表单之前,您不应该获得getText()
的值。
如果你还没有看过这个会有所帮助: https://www.codenameone.com/javadoc/com/codename1/ui/AutoCompleteTextField.html#getPropertyTypes--
祝你好运!