2011-12-10 24 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);