6

我目前正在做一个项目,该项目涉及根据我当前的位置显示附近的位置列表。

我刚开始不久前的 Android 编程,所以我还在编码阶段学习。

我到处搜索,试图找到一些关于如何进行的线索。阅读和尝试后,我仍然卡住了。

我的工作代码目前包括

  • 游标加载器
  • 一个自定义 ResourceCursorAdapter 帮助填充我在 ListView 上的条目

问题

  1. 为我的 ListView 过滤条目的“正确”方法是什么?我在 Filter/Filterable 界面上看到了帖子,但它似乎不适用于我当前的设置?我是否在我的自定义 CursorAdapter 中执行过滤?

  2. 执行过滤后,我应该如何刷新 ListView?我应该调用 getLoaderManager().restartLoader(0, null, this) 还是 adapter.notifyDataSetChanged() ?

提前致谢。

4

1 回答 1

13

用来getLoaderManager().restartLoader(LOADER_ID, null, MainActivity.this);回忆onCreateLoader

Android 开发者网站示例

private String filter;
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.action_filter :
            filter = "COLUMN_NAME = value";
            getLoaderManager().restartLoader(LOADER_ID, null, MainActivity.this);           
            break;          
        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public android.content.Loader<Cursor> onCreateLoader(int id, Bundle args) {

        return new CursorLoader(
                MainActivity.this,   // Parent activity context
                SomeContentProvider.CONTENT_URI,        // Table to query
                projection,     // Projection to return
                filter,            // No selection clause
                null,            // No selection arguments
                null             // Default sort order
                );

    }
于 2013-11-07T20:38:13.620 回答