使用CursorLoader的AutoCompleteTextView

4

我正在修改我的应用程序,改用CursorLoader而不是startManagingCursor....

我有一个AutoCompleteTextView和SimpleCursorAdapter,在我的setFilterQueryProvider实现中,在“runQuery”方法中我有:

    mProdutoAdapter.setFilterQueryProvider(new FilterQueryProvider() {
        @Override
        public Cursor runQuery(CharSequence constraint) {

            Cursor cursor = mVendasDb.getProdutos(constraint.toString());
            startManagingCursor(cursor);
            return cursor;
        }
    });

如何更改此部分以使其与CursorLoader配合使用?

我应该放弃使用setQueryFilterProvider,并在AutocompleteTextView中使用TextWatcher,然后调用getLoaderManager().restartLoader(0, bundleFilter, this)吗? 我不知道该怎么做!

bundleFilter将包含来自textwatcher的文本。

在这种情况下使用这种方法是否可以? 这是最好的方法吗?

1个回答

3
这是一种不错的方法,根据Android开发者网站:
使用restartLoader()来丢弃旧数据。例如,当用户的查询更改时,SearchView.OnQueryTextListener的此实现会重新启动加载程序。需要重新启动加载程序,以便它可以使用修订后的搜索过滤器进行新的查询。

那么,您如何使用Loader从OP的runQuery()方法返回Cursor? - ban-geoengineering

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接