当我键入以“W”开头的位置时,下面列出了相关位置。但是,如果我删除已经输入的位置,然后键入以“L”开头的另一个位置,则列表首先显示旧位置的先前列出的选项(以“W”开头的位置),然后与新位置相关的选项为上市。
因此,自动完成列表会显示以“W”开头的位置,然后显示以“L”开头的位置。 我也尝试过放置options.removeAll();作为过滤方法中的第一个陈述。
AutoCompleteTextField ac = new AutoCompleteTextField(options) {
protected boolean filter(String add) {
options.removeAll();
if(add.length() == 0) {
return false;
}
String[] l = searchLocations(add);
if(l == null || l.length == 0) {
return false;
}
for(String s : l) {
options.addItem(s);
}
return true;
}
};
//ac.setMinimumElementsShownInPopup(1);
ac.setMinimumLength(1);
Container c = stateMachine.findContainer(form);
AutoCompleteTextField oldac = (AutoCompleteTextField) stateMachine.findAddress(c);
c.replace(oldac, ac, null);
有没有办法纠正这个问题?
谢谢!