2012-04-21 18 views
1

私はちょうどsearchabledictionaryのアンドロイドのサンプルを使用しました。これはwindowsのアンドロイドのsdkのsamplesフォルダーにあります。 (APIレベル9)アンドロイドSearchableDictionaryサンプル - 言葉の提案

iは、アプリが言葉を提案しようとする key - value 私はサーチエリア内の単語を入力するように同じ形式でdefinitions.txtファイルを完了したが、それは正確なword.hereが見つかりません例。私は言葉testを探索し、これはdefinitions.txtです:

受け入れテスト -

酸試験を意味する -

アルファテストを意味する -

ベンチマークテストを意味する -

を意味します。 ...

飛行テスト - NG

負荷テスト - 意味

....

テスト - 意味

それはこのリストの15個の最初の言葉を見つけ

、(うまくいけば、それは検索されません言葉attestaionなど)正確な単語は表示されませんtest

私はDictionaryProviderDictionaryDatabaseを読んでいますが、私は問題の根を認識できませんでした!

質問はどうすれば正確な単語testを最初のリストに提案できますか?

答えて

0

Dictionary.javaを確認すると、loadWords関数が表示されます。 この関数はdefinitions.txtファイルを開き、すべての行を繰り返し、すべての行を " - "で分割し、ハッシュマップ辞書に追加します。

同じファイルには、検索キーワードを取り、辞書から結果を取得するgetMatches関数があります。

あなたが候補を検索しているときに、最初に一致するものが表示されるためです。 そして、 "test"キーワードが余りにも多くの行に存在し、最後の定義が( "テスト意味")、あなたは提案リストに見ることができません。

"testing -meaning"行をdefinitions.txtの最初の行に移動しようとすることができます。

+0

これは単なる例に過ぎないので、 "test-means"をテキストファイルの最初の行に移動することはお勧めしません。常に! – rene