Фильтр элемента RecyclerView не активируется флажок - PullRequest
0 голосов
/ 05 февраля 2020

Как я могу решить эту проблему? Я использую RecyclerView Filter, чтобы скрыть выбранные элементы и все работает нормально, но проблема в том, что элемент в результатах поиска не активен или не может поставить галочку. Я не могу вставить код в свою деятельность, потому что я использую SubItemRecyclerView.

Это мой код фильтра:

List<SubCandidates> sub;


@Override
public Filter getFilter() {
    return new Filter() {
        @Override
        protected FilterResults performFiltering(CharSequence charSequence) {
            String charString = charSequence.toString();
            FilterResults filterResults = new FilterResults();
            if (charString.isEmpty()) {
                subItemList = sub;
            } else {
                List<SubCandidates> filteredList = new ArrayList<>();
                for (SubCandidates row : subItemList) {

                    // name match condition. this might differ depending on your requirement
                    // here we are looking for name or phone number match
                    if (row.getPosDes().toLowerCase().contains(charString.toLowerCase())) {
                        filteredList.add(row);
                    }
                }

                filterResults.values = filteredList;
                filterResults.count = filteredList.size();

            }


            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
            subItemList = (List<SubCandidates>) filterResults.values;

            // refresh the list with filtered data
            notifyDataSetChanged();
        }
    };
}

и мой код onBindViewHolder:

if(checkif(maxlist)) {

    String voter = smh.getString(Constants.section,"0");

    String fi = null;

    if(voter.contains("GRADE 7")) {
       fi = voter.substring(0,7);
    } else if(voter.contains("GRADE 8")) {
        fi = voter.substring(0,7);
    } else if(voter.contains("GRADE 9")) {
        fi = voter.substring(0,7);
    } else if(voter.contains("GRADE 10")) {
        fi = voter.substring(0,8);
    } else if(voter.contains("GRADE 11")) {
        fi = voter.substring(0,8);
    } else if(voter.contains("GRADE 12")) {
        fi = voter.substring(0,8);
    }

    getFilter().filter(fi);

    subItemViewHolder.chk.setVisibility(View.VISIBLE);
    subItemViewHolder.rd.setVisibility(View.GONE);

    subItemViewHolder.chk.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v)
            {
                subItem.setSelected(subItem.isSelected());

                if(subItem.isSelected() == true) {
                    db.addData(subItem,"1");
                    Toast.makeText(mContext,subItem.getCanID(),-1).show();
                } else {
                    db.deleteData(subItem);

                }


                }});

        subItemViewHolder.chk.setChecked(subItem.isSelected());

    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...