Search BB自动完成字段事件未被处理

Search BB自动完成字段事件未被处理,search,blackberry,listener,Search,Blackberry,Listener,我已将添加到主屏幕,该类实现了FieldChangeListener。问题是,当我输入文本并按键时,它会处理,但当我删除文本并按键时,它不会处理。下面是我如何添加它的: /// search bar BasicFilteredList filterList = new BasicFilteredList(); String[] terms = {"a","b","c","d","e","f","g","h"}; filterList.addDataSet(1,terms,

我已将添加到
主屏幕
,该类实现了
FieldChangeListener
。问题是,当我输入文本并按键时,它会处理,但当我删除文本并按键时,它不会处理。下面是我如何添加它的:

/// search bar
    BasicFilteredList filterList = new BasicFilteredList();
    String[] terms = {"a","b","c","d","e","f","g","h"};
    filterList.addDataSet(1,terms,"search",BasicFilteredList.COMPARISON_IGNORE_CASE);
    autoCompleteField = new AutoCompleteField(filterList){
        public void onSelect(Object selection, int type) {
            if(type == SELECT_ENTER || type == SELECT_TRACKBALL_CLICK || type == SELECT_TRACKWHEEL_CLICK)
                setListView();
        }
   };
//----------------over-ridden method-----------------
public void fieldChanged(Field field, int context) {
    if(field == topBar.getField(0)){
    // do something
    }
    else if(field == topBar.getField(1)){
    // do something
    }
    else if(field == topBar.getField(2)){
    //do something      
    }
    else if(field == autoCompleteField){
        setListView();//debugger never reaches here!
    }
}
编辑最终解决方案如下所示-

autoCompleteField = new AutoCompleteField(filterList){
        public void fieldChanged(Field field, int context) {
            setListView();
        }
   };

据我所知,您的问题是希望在字段变为空时得到通知。如果这是您需要的,您可以将注意力指向
AutoCompleteField.fieldChanged(Field-Field,int-context)
。每当字段中的文本发生更改时,就会执行
。因此,您可以覆盖它并检查文本是否为空字符串,然后启动自定义操作

顺便说一句,在这种情况下,我认为你不应该称之为:

autoCompleteField.setChangeListener(this);

因为
AutoCompleteField
实现了
FieldChangeListener
,并且它已经在
AutoCompleteField.fieldChanged(Field-Field,int-context)

中监听自己了
AutoCompleteField.setChangeListener(这个)-你说得对!我还有其他字段实现了
FieldChangeListener
,所以我一直在听它,还有其他按钮,它们都在被过度使用的
fieldChanged(Field Field,int context)
方法中,但奇怪的是,它不起作用!我已经把这个添加到了question@tipycalFlow:根据你的评论,我仍然怀疑你是否修复了它@tipycalFlow:您是否尝试过重写
自动完成字段.fieldChanged(字段,int-context)
?因此,您可以覆盖它并检查文本是否为空字符串,然后启动自定义操作;不,我删除了它,因为正如@Arhimed所指出的,
AutoCompleteField
已经自动监听了。