【发布时间】:2013-07-24 13:14:30
【问题描述】:
我想在列表字段中添加一个搜索框。这样当我输入一个字母时,它将显示以字母 'A' 开头的名称,依此类推。我正在使用 Vector 来保存与显示的图像相同的联系人列表:
【问题讨论】:
标签: eclipse blackberry blackberry-jde
我想在列表字段中添加一个搜索框。这样当我输入一个字母时,它将显示以字母 'A' 开头的名称,依此类推。我正在使用 Vector 来保存与显示的图像相同的联系人列表:
【问题讨论】:
标签: eclipse blackberry blackberry-jde
如果您想从联系人中进行选择,请使用ContactList.choose() 方法。
不要每次都尝试遍历自己的整个联系人。请记住,有很多人拥有数千个联系人,您的代码将非常迟钝。
见:https://stackoverflow.com/a/4436816/371534
但是,如果您希望使用“键入时过滤”功能以及其他一些数据,请使用KeywordFilterField。您可以在 BlackBerry JDK 示例中获取它的示例代码。
【讨论】:
为您的 EditField 设置 FieldChangeListener(或监听字母数字按键)。然后每次刷新列表。过滤以 EditField 中包含的字符串开头的条目。
我是在没有安装黑莓插件的电脑上写的,所以无法测试,但应该是这样的。
String prefix = editField.getText();
Enumeration e = list.items();
while(e.hasMoreElements())
{
PIMItem item = (PIMItem) e.nextElement();
String name = item.getString(PIMItem.NAME,0);
if (name.startsWith(prefix))
{
//TODO display on screen
}
}
【讨论】: