15

カスタムオブジェクトのArrayListにArrayAdapterをラップしています。そのアダプタのカスタムフィルタを作成して、呼び出しgetListAdapter().getFilter().filter("abc")たときにリストが「abc」の任意の変換によってフィルタリングされるようにします。

オーバーライドしようと思ったのですが、それには、ArrayAdapterのプライベートインスタンスの束へのアクセスを必要とするArrayAdapter.getFilter()プライベートを再実装する必要があります。ArrayAdapter.ArrayFilter

これを行う最も簡単な方法は何ですか?

4

1 に答える 1

12

まず、ArrayAdapter のソース コードを見てみましょう。

メソッドmFilterでのみ使用されるプライベート フィールドがあることに気付くでしょう。getFilter()したがって、拡張ArrayAdapterしてオーバーライドgetFilter()するだけで、 Filter.

Filterと同じ方法で:を実装することをお勧めしますArrayFilter: のプライベート フィールドにアクセスできるように、プライベート 内部クラスとしてArrayAdapter

これがタスクを完了するのに十分な情報であるかどうか教えてください。

于 2010-11-21T00:23:30.453 に答える