Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:过滤SimpleCursorAdapter列表视图_Android_Sqlite_Cursor_Adapter - Fatal编程技术网

Android:过滤SimpleCursorAdapter列表视图

Android:过滤SimpleCursorAdapter列表视图,android,sqlite,cursor,adapter,Android,Sqlite,Cursor,Adapter,现在,我在自定义SimpleCursorAdapter中实现FilterQueryProvider时遇到了问题,因为我不确定在FilterQueryProvider的runQuery函数中要做什么 换句话说,由于包含我的ListView的查询基本上从数据库的表中获取rowID、name和第三列,因此我希望能够根据name列的部分值筛选游标 但是,我不确定是否可以在不扩展DB类的情况下直接从runQuery执行此操作,因为我想过滤现有游标,还是必须在DB类中创建一个新的查询函数来部分搜索我的名称列

现在,我在自定义SimpleCursorAdapter中实现FilterQueryProvider时遇到了问题,因为我不确定在FilterQueryProvider的runQuery函数中要做什么

换句话说,由于包含我的ListView的查询基本上从数据库的表中获取rowID、name和第三列,因此我希望能够根据name列的部分值筛选游标

但是,我不确定是否可以在不扩展DB类的情况下直接从runQuery执行此操作,因为我想过滤现有游标,还是必须在DB类中创建一个新的查询函数来部分搜索我的名称列,如果是这样,在runQuery中使用CharSequence约束参数时,如何创建查询语句


我还担心与尝试基于部分文本运行多个查询相关的性能问题,因为所讨论的DB表大约有1300-1400行。换句话说,我在尝试筛选光标时会遇到瓶颈吗?

您需要运行一个查询,该查询将返回一个新的筛选光标:

public class MyActivity extends ListActivity implements FilterQueryProvider {

    private Cursor cursor;

    @Override
    public Cursor runQuery(CharSequence constraint) {
        if(cursor != null) {
            cursor.close();
        }
        cursor = somehowGetAFilteredCursorFor(constraint);
        startManagingCursor(cursor);
        return cursor;
    }

}

关闭光标会导致奇怪的行为-仅隐藏软键盘后,listview不会立即过滤。logcat中还有关于twicely和更多次关闭游标的警告消息