我有一个ListView连接到ArrayAdapter,其中Artist是我的一个简单类,它只有一个id和一个名字.
现在我想过滤ListView,所以我打电话:
artistAdapter.getFilter().filter("bla", new Filter.FilterListener() {
public void onFilterComplete(int count) {
Log.d(Config.LOG_TAG, "filter complete! count: " + count); // returns 8
Log.d(Config.LOG_TAG, "adapter count: " + artistAdapter.getCount()); // return 1150
}
});
Run Code Online (Sandbox Code Playgroud)
第一个调试语句打印的计数为8.这是以"bla"开头的listitems的正确计数,但是适配器没有得到它.第二个调试语句打印一个计数1150项.这是列表中的完整项目数.
因此,过滤器不会告诉适配器它已经过滤了底层数据.
我现在想知道:我的适配器中是否有代码,以便从过滤器获取更新?我必须编写自定义过滤器吗?我需要做什么?