[英]Android: Filtering a SimpleCursorAdapter ListView
现在,我遇到了试图在我的自定义SimpleCursorAdapter中实现FilterQueryProvider的问题,因为我不确定在FilterQueryProvider的runQuery函数中该做什么。
换句话说,由于包含我的ListView的查询基本上从我的数据库表中获取rowID,name和第三列,我希望能够根据name列的部分值过滤游标。
但是,我不确定是否可以直接从runQuery执行此操作而不扩展我的数据库类,因为我想过滤现有的游标,或者我必须在我的数据库类中创建一个新的查询函数,部分搜索我的名称列,并且如果是这样,在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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.