Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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/0/search/2.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 通过getFilter方法在列表中搜索字符串数组_Android_Search_Arraylist_Filter_Adapter - Fatal编程技术网

Android 通过getFilter方法在列表中搜索字符串数组

Android 通过getFilter方法在列表中搜索字符串数组,android,search,arraylist,filter,adapter,Android,Search,Arraylist,Filter,Adapter,我试图在自定义适配器中使用getFilter方法实现searchview 在我的模型类中有一个getgreen()方法,它返回一个字符串数组,用,分隔,比如:钢琴、吉他、小提琴…… 问题是,当我尝试搜索此术语时,例如:钢琴、吉他,然后它将返回例如钢琴、长笛、吉他,但它将忽略只有一个类别的项目:例如只有吉他标记为类别的项目将不显示 你能帮我做这个吗 @Override public Filter getFilter() { Filter filter = new Filter() {

我试图在自定义适配器中使用
getFilter
方法实现searchview

在我的模型类中有一个
getgreen()
方法,它返回一个字符串数组,用
分隔,比如:
钢琴、吉他、小提琴……

问题是,当我尝试搜索此术语时,例如:
钢琴、吉他
,然后它将返回例如
钢琴、长笛、吉他
,但它将忽略只有一个类别的项目:例如只有
吉他
标记为类别的项目将不显示

你能帮我做这个吗

@Override
public Filter getFilter() {
    Filter filter = new Filter() {
        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            dataList = (List<ProductLocal>) results.values;
            notifyDataSetChanged();
        }
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults results = new FilterResults();
            List<ProductLocal> filteredList = new ArrayList<>();

            for (int i = 0; i < dataListFilter.size(); i++) {
                ProductLocal dataNames = dataListFilter.get(i);

                int count = 0;
                String[] terms = constraint.toString().split(",");

                for (String term : terms) {

                    for (String str : dataNames.getGenre()) {

                        if (str.equals(term) || str.contains(term)) {
                            count++;
                            if (count == terms.length) {
                                filteredList.add(dataNames);
                            }
                        }
                    }
                }
            }

            results.count = filteredList.size();
            results.values = filteredList;
            return results;
        }

    };
    return filter;
}
@覆盖
公共过滤器getFilter(){
过滤器过滤器=新过滤器(){
@凌驾
受保护的void publishResults(CharSequence约束、FilterResults结果){
dataList=(List)results.values;
notifyDataSetChanged();
}
@凌驾
受保护的筛选器结果性能筛选(CharSequence约束){
FilterResults results=新的FilterResults();
List filteredList=新建ArrayList();
对于(int i=0;i
难以置信,那么你是如何学习编程的呢?这似乎是一个可以用来学习编程的基本问题。这就是我们的编程教学回顾。实现过滤,实现排序,实现其他基本算法。。。问题在哪里?或者你只是想把解决方案准备好复制粘贴?@Selvin我想你对你的傲慢是如此盲目,以至于你没有看到我在我的问题中已经提到了我的问题。这几乎充满了基本的问题。人们通过分享他们的经验来提高他们的编程知识。换句话说,如果我尝试搜索吉他,这个项目将不会显示为筛选列表???