我目前正在做一个项目,该项目涉及根据我当前的位置显示附近的位置列表。
我刚开始Android编程不久,所以我还处于边学边写的阶段。
我四处搜索,试图获得一些关于如何进行的线索。阅读和尝试后我仍然卡住了。
我的工作代码目前包括
- 光标加载器
- 一个自定义 ResourceCursorAdapter,有助于填充我在 ListView 上的条目
问题
为我的 ListView 筛选条目的“正确”方法是什么?我看到有关 Filter/Filterable 界面的帖子,但它似乎不适用于我当前的设置?我是否在自定义 CursorAdapter 中执行过滤?
我应该如何在执行过滤后刷新我的 ListView?我是调用 getLoaderManager().restartLoader(0, null, this) 还是 adapter.notifyDataSetChanged()?
提前致谢。
最佳答案
使用getLoaderManager().restartLoader(LOADER_ID, null, MainActivity.this);
调用onCreateLoader
。
Android developer site example .
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
);
}
关于android - 使用 CursorLoader 和 Custom CursorAdapter 过滤 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19095790/