动态自动完成

时间:2016-07-25 00:14:00

标签: codenameone

当我键入以“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);

有没有办法纠正这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

结帐this live sample,此问题并未在此处发生,因此我猜测预先存在的结果的问题与您修改模型的方式有关。