2011-12-10 13 views
1

現在開発中のアプリケーションでオートコンプリート機能を実装したいと思います。私はブラックベリーのネイティブオートコンプリートフィールドを使用していただろうが、私は自動完成リストをウェブサーバーから取得したい。この機能は、ブラックベリーのGoogleマップの検索画面に実装されています。ブラックベリーのオートコンプリート検索フィールド

どうすればいいですか?

+0

あなたはネイティブのオートコンプリートフィールドでこれを実装しようとしたことがありますか? –

+0

ええ..私はネイティブのオートコンプリートフィールドで実装しようとしましたが、固定リストであるBasicFilteredListクラスからそのリストを取得します。私はリストをオンラインでディレクトリリストから動的に取得したい。何かajaxのようなものですが、javaを使用しています。ありがとう – Oluwabusayo

答えて

1

私は試していませんでしたが、それを行うには問題はありません。 EditFieldのリスナーを追加する必要があります - getEditFieldがお手伝いします。 提案のリストを取得したら、BasicFilteredListにパックし、AutoCompleteFieldsetFilteredListと設定します。

ネットワークにアクセスできないケースの実装についても考える必要があります。

+0

私はあなたの提案を実装しましたが、そのアプローチの問題は、「keydownイベント」または「キーを押す」によって自動提案がトリガーされるようにすることです。私はスクリーンクラスのデフォルトのキー入力メソッドをオーバーライドすることを考えています。 – Oluwabusayo

+0

EditFieldにリスナーを追加した場合、テキストの変更について通知されます。 –

+0

よろしいですか。私はこれを実装しようとします。ありがとう – Oluwabusayo

0

ウェブサーバから戻ってデータを取得した後、String[]として検索可能なデータを保存http://devblog.blackberry.com/2010/04/how-to-use-autocompletefield/

から偉大な例。

次に、あなただけのあなたの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); 
関連する問題