2011-12-10 33 views
1

我想在当前正在开发的应用中实现自动完成功能。我会使用黑莓原生自动完成字段,但我希望从网络服务器获得自动完成列表。此功能正在黑莓谷歌地图的搜索屏幕中执行。黑莓的自动完成搜索字段

请问你可以提出一些建议吗?

+0

您是否尝试过与本机自动完成字段来实现这一点? –

+0

是的..我试着用本地自动完成字段来实现它,但它从BasicFilteredList类获取它的列表,这是一个固定列表。我想要从列表在线目录列表中动态获取列表。就像ajax,但现在使用java。谢谢 – Oluwabusayo

回答

1

我没有尝试,但我没有看到任何问题要这样做。 您需要为EditField添加监听器 - getEditField会帮助您。 获得建议列表后,您将它们打包到BasicFilteredList并将其设置为AutoCompleteFieldsetFilteredList

您应该考虑网络不可达的情况的实施。

+0

我实现了你的建议,但是这种方法的问题是我想让自动建议由'keydown事件'或'按下一个键'触发。我想重写屏幕类的默认按键方法。 – Oluwabusayo

+0

如果您将侦听器添加到EditField,您将收到关于文本更改的通知。 –

+0

好的。我会尽力实现这一点。谢谢 – Oluwabusayo

0

很好的例子,从http://devblog.blackberry.com/2010/04/how-to-use-autocompletefield/

从Web服务器获取您的数据备份后,存储所述可搜索数据String[]

然后你只需要下面的代码,使您的工作AutoCompleteField:

BasicFilteredList filterList = new BasicFilteredList(); 

//my query to sqlite database, yours could just be parsed from your webserver or whatever 
String[] list = db.getSearchSuggestions(totalCount); 

filterList.addDataSet(1, list, "list", BasicFilteredList.COMPARISON_IGNORE_CASE); 
final AutoCompleteField autoComplete = new AutoCompleteField(filterList);