2011-12-28 6 views
0

私はSOソリューションを参照して一日中リストビューをフィルタリングしようとしていましたが、それを行うことはできませんでした。したがって、私はあなたの参照のために以下のコードを貼り付けています。私がやっていたことを正確に知っています。私はそれを解決し、可能であれば私のコードを編集したり、間違いを指摘してください。事前に感謝テキストのリストビューを並べ替える方法android

答えて

1

あなたのpublishResultsメソッドに問題があるようです。 performFilteringから得られた結果は、アレイアダプタ内のオブジェクトリストには適用されません。これを行う簡単な方法は、フィルターを適用したアイテムで新しいArrayAdapterを作成し、リストビューを更新することです。

アレイリストのデフォルトの動作は、プレフィックスをフィルタリングすることです。これが正常であれば、リストビューでsetFilterTextを呼び出すだけで、独自のフィルタリングを実装せずにフィルタするテキストを呼び出すことができます。

また、側面として、Filter newFilter = null;をメソッド外に移動したいと思うかもしれません。それ以外の場合は、毎回フィルタを作成しています。同じ文字列値を持つテキストウォッチャーのテキストをフィルターとして呼び出しているので、メソッドの中にあるetsearchの内容に制約を設定する必要はありません。

+0

返信ありがとうございます。コードで私を助けてください。私のコードplsを編集してください – cavallo

+0

あなたの投稿をまだ編集する権限がありません。また、修正するための十分なコードを投稿していない。あなたは 'Contacts'のリストをフィルタリングしていますが、あなたのリストビューは' DeviceContacts'のリストを表示します。それはサブクラスですか? 'contactarray'を' Contacts'のリストに変更すると、 'notifyDataSetChanged'を' contactarray = new ArrayList (Collection )results.values); bindList(); 'に置き換えることができます。 – Chase

関連する問題