Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface BlackBerry-带有复选框和搜索条件的列表_User Interface_Blackberry_Checkbox_Lookup_Listfield - Fatal编程技术网

User interface BlackBerry-带有复选框和搜索条件的列表

User interface BlackBerry-带有复选框和搜索条件的列表,user-interface,blackberry,checkbox,lookup,listfield,User Interface,Blackberry,Checkbox,Lookup,Listfield,我试图显示一个带有复选框的数据列表,用户可以在其中一次选择多个项目。。。 我希望在列表顶部有一个搜索字段,它将搜索整个列表 我该怎么做?说明 首先,创建一个包含所有列表字段的向量,这样您就可以随时在屏幕上添加和删除它们。创建屏幕时,将它们全部添加到列表控件 现在,让我们假设你有一个编辑字段-你的搜索字段。您可以为它设置侦听器并捕获文本更改事件 在该事件中,您可以从列表控件中删除所有字段,从搜索字段中获取文本值,迭代所有字段向量,并将满足搜索条件的字段添加到列表控件中 密码 LookupList控

我试图显示一个带有复选框的数据列表,用户可以在其中一次选择多个项目。。。 我希望在列表顶部有一个搜索字段,它将搜索整个列表

我该怎么做?

说明 首先,创建一个包含所有列表字段的向量,这样您就可以随时在屏幕上添加和删除它们。创建屏幕时,将它们全部添加到列表控件

现在,让我们假设你有一个编辑字段-你的搜索字段。您可以为它设置侦听器并捕获文本更改事件

在该事件中,您可以从列表控件中删除所有字段,从搜索字段中获取文本值,迭代所有字段向量,并将满足搜索条件的字段添加到列表控件中

密码 LookupList控件:

public class LookupList extends VerticalFieldManager {

    Vector mItems = null;

    public LookupList() {
        super();
        mItems = new Vector();
    }

    public void addItem(Field itemField) {
        String cookie = (String) itemField.getCookie();
        if (null == cookie)
            throw new IllegalArgumentException(
                    "String cookie must be set to lookupList field");
        mItems.addElement(itemField);
        add(itemField);
    }

    public void removeItem(int index) {
        Field itemField = (Field) mItems.elementAt(index);
        mItems.removeElement(itemField);
        delete(itemField);
    }

    public void lookup(String searchValue) {
        deleteAll();
        for (int i = 0, count = mItems.size(); i < count; i++) {
            Field field = (Field) mItems.elementAt(i);
            String cookie = (String) field.getCookie();
            if (cookie.startsWith(searchValue))
                add(field);
        }
    }
}
使用示例:

class Scr extends MainScreen implements FieldChangeListener {
    LookupList mList = null;
    BasicEditField mEdit = null;

    public Scr() {
        super();

        mEdit = new BasicEditField();
        add(mEdit);

        mEdit.setChangeListener(this);

        mList = new LookupList();
        for (int i = 0; i < 100; i++) {
            LabelField label = new LabelField("Lookup field #"
                    + String.valueOf(i));
            label.setCookie(String.valueOf(i));
            mList.addItem(label);
        }

        add(mList);
    }

    public void fieldChanged(Field field, int context) {
        if (field == mEdit)
            mList.lookup(mEdit.getText());
    }
}
附言 您可以将任何字段子类添加到列表Edit/Label/CustomCheckBos等,但它应该有一个带值的字符串cookie进行搜索。 您可以将逻辑更改为按字段标签、文本或自定义属性进行搜索。