Android使用Filter API或CursorLoader过滤列表片段

时间:2013-09-08 20:41:40

标签: android android-listview filter android-cursorloader

情况

我的数据来自手机上的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接口?

似乎我只是在重新发明过滤器设计的轮子。

0 个答案:

没有答案