I have an adapter, I want to filter results based on data from SharedPreferences, but to get them I need a context, how do I get it?
Here is the code:
public class ProblemNameFilter extends Filter { private final String SEARCH_DATA = "SEARCH_DATA"; ProblemNameAdapter adapter; List<GetProblemListResponse.Problems> filterList; public ProblemNameFilter(List<GetProblemListResponse.Problems> filterList, ProblemNameAdapter adapter) { this.adapter=adapter; this.filterList=filterList; } @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results=new FilterResults(); if(constraint != null && constraint.length() > 0) { constraint=constraint.toString().toUpperCase(); List<GetProblemListResponse.Problems> filteredProblems = new ArrayList<>(); for (int i=0; i < filterList.size(); i++) { if((filterList.get(i).getProblemName().toUpperCase().contains(constraint)) || filterList.get(i).getProblemCode().toUpperCase().contains(constraint)) { filteredProblems.add(filterList.get(i)); } } results.count = filteredProblems.size(); results.values = filteredProblems; }else { results.count=filterList.size(); results.values=filterList; } return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { adapter.problems = (List<GetProblemListResponse.Problems>) results.values; //REFRESH adapter.notifyDataSetChanged(); } }