我有一个ArrayAdapter,它包含在自定义对象的ArrayList中。我想为该适配器编写一个自定义过滤器,这样当我调用getListAdapter().getFilter().filter("abc")
时,列表将被“abc”的任意转换过滤。
我以为我会尝试覆盖ArrayAdapter.getFilter()
,但这需要我重新实现私有ArrayAdapter.ArrayFilter
,这需要访问一堆ArrayAdapter的私有实例。
最简单的方法是什么?
答案 0 :(得分:12)
首先,看看source code of ArrayAdapter。
您会注意到它的私有字段mFilter
仅用于getFilter()
方法。因此,只需展开ArrayAdapter
并覆盖getFilter()
即可返回Filter
。
最好以与Filter
相同的方式实施ArrayFilter
:作为私有内部类,因此可以访问ArrayAdapter
的私有字段。
请告诉我这是否足以完成任务。