Android领域过滤不能倒退

时间:2017-06-19 09:05:41

标签: android filter realm

我在我的片段中创建了我的查询并将其传递给适配器以供以后使用,如下所示:

RealmQuery<Place> query = realm.where(Place.class);
query = query.beginGroup();
if (ids.size() == 0) {
...
} else {
    int j = 0;
    for (RealmInt id : ids) {
        if (j++ > 0) {
            query = query.or();
        }
        query = query.equalTo("id", id.getVal());
    }
}
query = query.endGroup();
query = query.equalTo("loc", loc);

在我的适配器中我使用此方法进行过滤:

@Override
    public Filter getFilter() {
        final Filter filter = new Filter() {

            @SuppressWarnings("unchecked")
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                String text = constraint.toString();
                if (text == null || "".equals(text)) {
                    if(!query.equals(query2)){
                        query = query2;
                    }
                    OrderedRealmCollection<Place> placess = query.findAll();
                    updateData(placess);
                } else {
                    if(!query.equals(query2)){
                        query = query2;
                    }
                    OrderedRealmCollection<Place> placess = query
                            .contains("name", text, Case.INSENSITIVE) // TODO: change field
                            .findAll();
                    updateData(placess);
                }
            }

            @Override
            protected FilterResults performFiltering(CharSequence constraint) {

                FilterResults results = new FilterResults();

                return results;
            }
        };

        return filter;
    }

问题是,当我尝试向后搜索时,这意味着搜索更少的字符,列表不会更新。为什么?

0 个答案:

没有答案