我的数据来自手机上的SQLite DataProvider。我的片段扩展ListFragment
并实现LoaderManager.LoaderCallbacks<Cursor>
。我希望有一个SearchView
小部件来允许过滤ListView。在onActivityCreated
中,我使用SimpleCursorAdapter
查找我自己的xml布局的列。在onCreateLoader
中,我使用CursorLoader
。
基于研究,我可以想到两种方法。
我可以从adatper获得过滤器。我的代码:
Fragment frag = getView().findViewByTag(....);
Filter f = ((SimpleCursorAdapter) frag.getListView().getAdapter()).getFilter();
f.filter(<searchText>);
但是上面的代码什么也没做。
按照here
所述,使用正确的搜索文本重新启动加载程序Bundle args = new Bundle();
args.putString(SEARCH_TERM, text);
getLoaderManager().restartLoader(0, args, this);
以上似乎有效。
问题是:这是否设计过滤器不适用于SimpleCursorAdapter?应该如何使用Filter接口?
似乎我只是在重新发明过滤器设计的轮子。