黑莓手机 - 名单与复选框与搜索条件一起 [英] BlackBerry - List with checkbox along with search criteria

查看:104
本文介绍了黑莓手机 - 名单与复选框与搜索条件一起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想显示的数据与复选框,在这里用户可以一次选择多个项目的列表...
我想在列表的顶部将通过列表...

I am trying to display a list of data with checkboxes, where user can select multiple items at one time... I want a search field on top of the list which will search through the list...

我该怎么办呢?

推荐答案

首先,创建与所有的列表域的向量,这样你就能在任何时间在屏幕上添加和删除它们。当您创建的屏幕,添加所有列出的控制。

Explanation

First, create a vector with all list fields, so you will be able to add and remove them on screen at any time. When you create screen, add them all to list control.

现在,让我们说你有这些EditFields之一 - 搜索领域。您可以设置一个侦听器,并赶上文本更改事件。

Now, lets say you have one of those EditFields - your search field. You can set a listener for it and catch text change event.

在此情况下,你可以删除列表控件中的所有领域,从取搜索字段文本值,遍历所有字段载体,并添加那些符合搜索条件列出的控制。

On that event you can remove all fields from list control, take text value from search field, iterate all fields vector and add those which meet search criteria to list control.

LookupList控制:

LookupList control:

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());
    }
}

PS


  • 您可以添加任何现场descendend类列表(编辑/标签/ CustomCheckBos等),但它应该有值的字符串cookie来搜索。

  • 您可以更改逻辑外勤标签,文本或自定义属性进行搜索。

  • 这篇关于黑莓手机 - 名单与复选框与搜索条件一起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆