我想在当前正在开发的应用中实现自动完成功能。我会使用黑莓原生自动完成字段,但我希望从网络服务器获得自动完成列表。此功能正在黑莓谷歌地图的搜索屏幕中执行。黑莓的自动完成搜索字段
请问你可以提出一些建议吗?
我想在当前正在开发的应用中实现自动完成功能。我会使用黑莓原生自动完成字段,但我希望从网络服务器获得自动完成列表。此功能正在黑莓谷歌地图的搜索屏幕中执行。黑莓的自动完成搜索字段
请问你可以提出一些建议吗?
我没有尝试,但我没有看到任何问题要这样做。 您需要为EditField添加监听器 - getEditField
会帮助您。 获得建议列表后,您将它们打包到BasicFilteredList
并将其设置为AutoCompleteField
与setFilteredList
。
您应该考虑网络不可达的情况的实施。
我实现了你的建议,但是这种方法的问题是我想让自动建议由'keydown事件'或'按下一个键'触发。我想重写屏幕类的默认按键方法。 – Oluwabusayo
如果您将侦听器添加到EditField,您将收到关于文本更改的通知。 –
好的。我会尽力实现这一点。谢谢 – Oluwabusayo
很好的例子,从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);
您是否尝试过与本机自动完成字段来实现这一点? –
是的..我试着用本地自动完成字段来实现它,但它从BasicFilteredList类获取它的列表,这是一个固定列表。我想要从列表在线目录列表中动态获取列表。就像ajax,但现在使用java。谢谢 – Oluwabusayo