質問: Androidでアプリをつくってます。 それでListViewにsearchviewでフィルターをかけたいのですが、 やり方がわかりません。 ネットで調べてみたのですが テキストが一つしかないシンプルなListViewでの実装方法しかありません。 私のListViewはカスタムレイアウトでテキストが3つあるのですが 実装は可能でしょうか? また、実装の仕方などが分かれば 教えて下さい。 よろしくお願いします
回答: ListViewとSearchViewは役割が異なるので、別々に考えましょう。 まず、SearchViewの役割はユーザーの入力したキーワードを取得することにあります。 OnQueryTextListenerをセットすることで、エンターやサブミットボタンがクリックされた時のキーワードを取得することができます。 次にSearchViewが取得したキーワードを使い、リストの内容をフィルタリングします。 ArrayAdapter#getFilter#filterにキーワードを渡すことでフィルタリングされます。 実際のフィルタリングの方法はArrayApapter#getFilterをオーバーライドし、自作のFilterクラスを返却するようにします。 実装については貴方がどのようにフィルタリングしたいかを書いていないので回答できません。