2016-07-25 8 views
1

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 !!

Antwort

0

Check out this live sample, dieses Problem tritt hier nicht auf, so dass ich vermute, das Problem mit den bereits vorhandenen Ergebnissen ist mit der Art, wie Sie das Modell geändert.

+0

Danke..Jetzt funktioniert es richtig! – Durga