15

我有一个 ArrayAdapter 包裹在自定义对象的 ArrayList 周围。我想为该适配器编写一个自定义过滤器,这样当我调用列表时,getListAdapter().getFilter().filter("abc")该列表将被“abc”的任意转换过滤。

我以为我会尝试覆盖ArrayAdapter.getFilter(),但这需要我重新实现私有ArrayAdapter.ArrayFilter,这需要访问一堆 ArrayAdapter 的私有实例。

最简单的方法是什么?

4

1 回答 1

12

首先,看一下ArrayAdapter 的源代码

您会注意到它具有mFilter仅在getFilter()方法中使用的私有字段。因此,只需扩展ArrayAdapter并覆盖getFilter()即可返回您的Filter.

最好以Filter与 : 相同的方式实现您的ArrayFilter私有内部类,因此它可以访问ArrayAdapter.

让我知道这是否足以完成任务。

于 2010-11-21T00:23:30.453 回答