0

インドの都市の名前が約 8000 あるアプリケーションを開発しています。ユーザーが i と入力すると、オートコンプリートを使用して、ユーザーが仕事をするのを助けます。しかし、一部の都市名の綴りは、他の州の人々には推測しにくいものです。したがって、オートコンプリートには、デフォルトで提供される完全一致ではなく、おおよその文字列一致が必要です。

たとえば、次のような名前があります。

  • ティルマイライ
  • サーネトゥール
  • ティルトゥライユル
  • ティルヴァルル

また、

  • ティルネルベリ
  • ティルマンガラム

ユーザーが都市「ティルネルヴェリ」を検索し、テキスト ボックスに「ティルネル」と入力すると、オートコンプリート テキスト ビューに名前が表示されず、文字列が完全に一致します。

オートコンプリートドロップダウンリストでおおよそ一致する文字列を取得するにはどうすればよいですか..

4

2 に答える 2

6

カスタム フィルターを使用してカスタム ArrayAdapter を作成する必要があります (このフィルターは、Lexographic Distanceが特定のしきい値 (たとえば 3) 未満であることに基づいています) getFilter()。アダプターのメソッドで返す必要があります。

于 2012-04-27T08:59:16.327 に答える
1

多くの検索と実験の後、私は自分で解決策を見つけました..

カスタム文字列マッチングを行うには、 ArrayAdapter クラスを拡張し、独自の文字列マッチング アルゴリズムを記述する必要があるカスタム配列アダプターが必要です。

getFilterこの機能のために ArrayAdapter クラスのメソッドをオーバーライドし、カスタム アダプター クラスにメソッドをgetItem追加する必要があります。getCount

于 2012-05-14T05:34:30.130 に答える