Wenn ich einen Ort eintippe, der mit 'W' beginnt, werden die zugehörigen Orte unten aufgelistet. Aber wenn ich den bereits getippten Ort lösche und dann einen anderen eintippe, der mit "L" beginnt, dann zeigt die Liste zuerst die zuvor aufgelisteten Optionen für den alten Ort an (Orte, die mit "W" beginnen), dann sind die Optionen für den neuen Ort aufgelistet.Dynamische AutoVervollständigung
Aus diesem Grund zeigt die Autocomplete-Liste die Orte an, die mit 'W' beginnen und dann die Orte, die mit 'L' beginnen, beides. Ich habe auch versucht, options.removeAll(); als erste Anweisung in der Filtermethode.
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);
Gibt es eine Möglichkeit, dies zu beheben?
Danke !!
Danke..Jetzt funktioniert es richtig! – Durga