webentwicklung-frage-antwort-db.com.de

SearchView In ListView mit einem benutzerdefinierten Adapter

Jungs, ich brauche Hilfe. Ich habe versucht, eine SearchView in meinem Projekt zu implementieren. Aber mein Projekt enthält eine Listenansicht mit einem benutzerdefinierten Adapter. Ich habe viele Websites durchsucht, aber alle haben Beispiele, die einen Arrayadapter verwenden. Nehmen wir an, ich habe eine Employee-Klasse, die Namen und Alter enthält. Wie filtere ich die Mitarbeiter nur anhand ihres Namens?.

public class MainActivity extends Activity implements SearchView.OnQueryTextListener
{
SearchView mSearchView;
ListView mListView;
//String mStrings[]= {"abc","def","efg","ghi","ijk","Apple","agxhsdgc","abbbcc"};
ArrayList<Employee> emp_list=null;
EmployeeAdapter emp_adapter=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSearchView=(SearchView) findViewById(R.id.searchView1);
        mListView=(ListView) findViewById(R.id.listView1);

        emp_list=new ArrayList<Employee>();
        emp_list.add(new Employee("ABC", 24));
        emp_list.add(new Employee("ACB", 24));
        emp_list.add(new Employee("BVF", 28));
        emp_list.add(new Employee("BRT", 28));
        emp_list.add(new Employee("ANM", 23));

        emp_adapter=new EmployeeAdapter(MainActivity.this, emp_list);
        mListView.setAdapter(emp_adapter);

//      mListView.setAdapter(new ArrayAdapter<String>(this,
//                Android.R.layout.simple_list_item_1,
//                mStrings));
        mListView.setTextFilterEnabled(true);
        setupSearchView();


    }
     private void setupSearchView() 
     {
            mSearchView.setIconifiedByDefault(false);
            mSearchView.setOnQueryTextListener(this);
            mSearchView.setSubmitButtonEnabled(true); 
            mSearchView.setQueryHint("Search Here");
        }

        @Override
        public boolean onQueryTextChange(String newText) 
        {

            if (TextUtils.isEmpty(newText.toString())) {
                mListView.clearTextFilter();
            } else {
                mListView.setFilterText(newText.toString());
            }
            return true;
        }

        @Override
        public boolean onQueryTextSubmit(String query) 
        {
            return false;
        }


    }

und dies ist meine Adapterklasse, die BaseAdapter erweitert.

public class EmployeeAdapter extends BaseAdapter {

    Context ctx;
    ArrayList<Employee> emp_list;
    LayoutInflater linf=null;
    EmployeeHolder holder=null;






    public EmployeeAdapter(Context ctx, ArrayList<Employee> emp_list) {
        super();
        this.ctx = ctx;
        this.emp_list = emp_list;
        linf=(LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public class EmployeeHolder
    {
        TextView name;
        TextView age;

    }



    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return emp_list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return emp_list.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        if(convertView==null)
        {
            convertView=linf.inflate(R.layout.row, parent, false);
            holder=new EmployeeHolder();
            holder.name=(TextView) convertView.findViewById(R.id.name);
            holder.age=(TextView) convertView.findViewById(R.id.age);

            convertView.setTag(holder);
        }
        else
        {
            holder=(EmployeeHolder) convertView.getTag();
        }

        Employee e=(Employee) getItem(position);


        holder.name.setText(e.getName());
        holder.age.setText(String.valueOf(e.getAge()));

        return convertView;

    }

}

Danke im Voraus..

22
AndroidMech

Versuchen Sie es auf diese Weise, hoffentlich hilft Ihnen das ...

Activity_main.xml

    <SearchView
        Android:id="@+id/searchView1"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"/>


    <ListView
        Android:id="@+id/listView1"
        Android:layout_width="match_parent"
        Android:layout_height="0dp"
        Android:layout_weight="1"/>


</LinearLayout>

row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <TextView
        Android:id="@+id/txtName"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" />

    <TextView
        Android:id="@+id/txtAge"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginTop="5dp"/>

</LinearLayout>

MainActivity.Java

public class MainActivity extends Activity implements SearchView.OnQueryTextListener
{
    private SearchView mSearchView;
    private ListView mListView;
    private ArrayList<Employee> employeeArrayList;
    private EmployeeAdapter employeeAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mSearchView=(SearchView) findViewById(R.id.searchView1);
        mListView=(ListView) findViewById(R.id.listView1);

        employeeArrayList=new ArrayList<Employee>();
        employeeArrayList.add(new Employee("ABC", 24));
        employeeArrayList.add(new Employee("ACB", 24));
        employeeArrayList.add(new Employee("BVF", 28));
        employeeArrayList.add(new Employee("BRT", 28));
        employeeArrayList.add(new Employee("ANM", 23));

        employeeAdapter=new EmployeeAdapter(MainActivity.this, employeeArrayList);
        mListView.setAdapter(employeeAdapter);

        mListView.setTextFilterEnabled(true);
        setupSearchView();


    }
    private void setupSearchView()
    {
        mSearchView.setIconifiedByDefault(false);
        mSearchView.setOnQueryTextListener(this);
        mSearchView.setSubmitButtonEnabled(true);
        mSearchView.setQueryHint("Search Here");
    }

    @Override
    public boolean onQueryTextChange(String newText)
    {

        if (TextUtils.isEmpty(newText)) {
            mListView.clearTextFilter();
        } else {
            mListView.setFilterText(newText);
        }
        return true;
    }

    @Override
    public boolean onQueryTextSubmit(String query)
    {
        return false;
    }


}

EmployeeAdapter.Java

public class EmployeeAdapter extends BaseAdapter implements Filterable {

    public Context context;
    public ArrayList<Employee> employeeArrayList;
    public ArrayList<Employee> orig;

    public EmployeeAdapter(Context context, ArrayList<Employee> employeeArrayList) {
        super();
        this.context = context;
        this.employeeArrayList = employeeArrayList;
    }


    public class EmployeeHolder
    {
        TextView name;
        TextView age;
    }

    public Filter getFilter() {
        return new Filter() {

            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                final FilterResults oReturn = new FilterResults();
                final ArrayList<Employee> results = new ArrayList<Employee>();
                if (orig == null)
                    orig = employeeArrayList;
                if (constraint != null) {
                    if (orig != null && orig.size() > 0) {
                        for (final Employee g : orig) {
                            if (g.getName().toLowerCase()
                                    .contains(constraint.toString()))
                                results.add(g);
                        }
                    }
                    oReturn.values = results;
                }
                return oReturn;
            }

            @SuppressWarnings("unchecked")
            @Override
            protected void publishResults(CharSequence constraint,
                                          FilterResults results) {
                employeeArrayList = (ArrayList<Employee>) results.values;
                notifyDataSetChanged();
            }
        };
    }

    public void notifyDataSetChanged() {
        super.notifyDataSetChanged();
    }


    @Override
    public int getCount() {
        return employeeArrayList.size();
    }

    @Override
    public Object getItem(int position) {
        return employeeArrayList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        EmployeeHolder holder;
        if(convertView==null)
        {
            convertView=LayoutInflater.from(context).inflate(R.layout.row, parent, false);
            holder=new EmployeeHolder();
            holder.name=(TextView) convertView.findViewById(R.id.txtName);
            holder.age=(TextView) convertView.findViewById(R.id.txtAge);
            convertView.setTag(holder);
        }
        else
        {
            holder=(EmployeeHolder) convertView.getTag();
        }

        holder.name.setText(employeeArrayList.get(position).getName());
        holder.age.setText(String.valueOf(employeeArrayList.get(position).getAge()));

        return convertView;

    }

}

Employee.Java

public class Employee {

    private String name;
    private int age;

    public  Employee(String name,int age){
        this.name = name;
        this.age = age;
    }

    public String getName(){
        return name;
    }

    public int getAge(){
        return age;
    }
}
48
Haresh Chhelana

Quellcode

https://drive.google.com/open?id=0BzBKpZ4nzNzUOFlxeHhuWmF0Q1U

package example.abhiandroid.searchviewexample;

import Android.database.Cursor;
import Android.os.Bundle;
import Android.support.v7.app.AppCompatActivity;
import Android.util.Log;
import Android.widget.ListView;
import Android.widget.SearchView;

import Java.util.ArrayList;

public class SearchViewActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {

    // Declare Variables
    ListView list;
    ListViewAdapter adapter;
    public static SearchView editsearch;
    String[] animalNameList;
    ArrayList<AnimalNames> arraylist = new ArrayList<AnimalNames>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);
        // Generate sample data

        animalNameList = new String[]{"Lion", "Tiger", "Dog",
                "Cat", "Tortoise", "Rat", "Elephant", "Fox",
                "Cow","Donkey","Monkey"};

        // Locate the ListView in listview_main.xml
        list = (ListView) findViewById(R.id.listview);

        for (int i = 0; i < animalNameList.length; i++) {
            AnimalNames animalNames = new AnimalNames(animalNameList[i]);
            // Binds all strings into an array
            arraylist.add(animalNames);
        }

        // Pass results to ListViewAdapter Class
        adapter = new ListViewAdapter(this, arraylist);

        // Binds the Adapter to the ListView
        list.setAdapter(adapter);

        // Locate the EditText in listview_main.xml
        editsearch = (SearchView) findViewById(R.id.search);
        editsearch.setOnQueryTextListener(this);

        editsearch.setOnSuggestionListener(new SearchView.OnSuggestionListener() {

            @Override
            public boolean onSuggestionSelect(int position) {
                return true;
            }

            @Override
            public boolean onSuggestionClick(int position) {
                Cursor cursor= editsearch.getSuggestionsAdapter().getCursor();
                cursor.moveToPosition(position);
                String suggestion =cursor.getString(2);//2 is the index of col containing suggestion name.
                editsearch.setQuery(suggestion,true);//setting suggestion
                return true;
            }
        });

    }

    @Override
    public boolean onQueryTextSubmit(String query) {
        Log.e("keshav","query ->"+query);
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        String text = newText;

        Log.e("keshav","newText ->"+newText);

        adapter.filter(text);
        return false;
    }
}


package example.abhiandroid.searchviewexample;

import Android.content.Context;
import Android.util.Log;
import Android.view.LayoutInflater;
import Android.view.View;
import Android.view.ViewGroup;
import Android.widget.BaseAdapter;
import Android.widget.TextView;
import Java.util.ArrayList;
import Java.util.List;
import Java.util.Locale;

public class ListViewAdapter extends BaseAdapter {

    // Declare Variables
    Context mContext;
    LayoutInflater inflater;
    private List<AnimalNames> animalNamesList = null;
    private ArrayList<AnimalNames> arraylist;

    public ListViewAdapter(Context context, List<AnimalNames> animalNamesList) {
        mContext = context;
        this.animalNamesList = animalNamesList;
        inflater = LayoutInflater.from(mContext);
        this.arraylist = new ArrayList<AnimalNames>();
        this.arraylist.addAll(animalNamesList);
    }

    public class ViewHolder {
        TextView name;
    }

    @Override
    public int getCount() {
        return animalNamesList.size();
    }

    @Override
    public AnimalNames getItem(int position) {
        return animalNamesList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    public View getView(final int position, View view, ViewGroup parent) {
        final ViewHolder holder;
        if (view == null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.search_list_view_item, null);
            // Locate the TextViews in search_list_view_itemiew_item.xml
            holder.name = (TextView) view.findViewById(R.id.name);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        // Set the results into TextViews

        holder.name.setText(animalNamesList.get(position).getAnimalName());

        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("keshav","click  list item ->"+animalNamesList.get(position).getAnimalName());
                SearchViewActivity.editsearch.setQuery(animalNamesList.get(position).getAnimalName(), false);

                Log.e("keshav","click  size ->"+animalNamesList.size());
                // TOdo size always 1 Important See cs Electric Project in Holostik
                Log.e("keshav","click  size ->"+animalNamesList.get(0).getAnimalName());
            }
        });
        return view;
    }

    // Filter Class
    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
        animalNamesList.clear();
        if (charText.length() == 0) {
            animalNamesList.addAll(arraylist);
        } else {
            for (AnimalNames wp : arraylist) {
                if (wp.getAnimalName().toLowerCase(Locale.getDefault()).contains(charText)) {
                    animalNamesList.add(wp);
                }
            }
        }
        notifyDataSetChanged();
    }

}

package example.abhiandroid.searchviewexample;

public class AnimalNames
{
    private String animalName;

    public AnimalNames(String animalName) {
        this.animalName = animalName;
    }

    public String getAnimalName() {
        return this.animalName;
    }

}

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent">

    <SearchView
        Android:id="@+id/search"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:iconifiedByDefault="false">

        <requestFocus />
    </SearchView>

    <ListView
        Android:id="@+id/listview"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:layout_below="@+id/search" />

</RelativeLayout>


list item.xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:padding="10dp">

    <TextView
        Android:id="@+id/nameLabel"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Animal : " />

    <TextView
        Android:id="@+id/name"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_toRightOf="@+id/nameLabel" />

</RelativeLayout>

Glückliche Kodierung

0
Keshav Gera

Eine gute Antwort ist vorhanden, aber es gibt immer noch einige Probleme (falsche Position beim Klicken, Textüberlagerung), wie im Kommentarabschnitt erwähnt. Sie können dies auch folgendermaßen tun 

Referenz für weitere Informationen: Suchansicht Listenansicht Android

Ich habe es getestet und finde bis jetzt kein Problem. Falls Sie eines finden, erwähnen Sie es bitte im Kommentarbereich.

Modellklasse: MovieNames.Java

public class MovieNames {
    private String movieName;

    public MovieNames(String movieName) {
        this.movieName = movieName;
    }

    public String getAnimalName() {
        return this.movieName;
    }

}

2: listview_item.xml-Datei:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:padding="10dp">


    <TextView
        Android:id="@+id/name"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" />

</RelativeLayout>
  1. ListViewAdapter.Java-Klassenadapter für Listenansicht:

       import Android.content.Context;
       import Android.view.LayoutInflater;
       import Android.view.View;
       import Android.view.ViewGroup;
       import Android.widget.BaseAdapter;
       import Android.widget.TextView;
       import Java.util.ArrayList;
       import Java.util.Locale;
    
    
    
    public class ListViewAdapter extends BaseAdapter {
    
    // Declare Variables
    
    Context mContext;
    LayoutInflater inflater;
    private ArrayList<MovieNames> arraylist;
    
    public ListViewAdapter(Context context ) {
        mContext = context;
        inflater = LayoutInflater.from(mContext);
        this.arraylist = new ArrayList<MovieNames>();
        this.arraylist.addAll(MainActivity.movieNamesArrayList);
    }
    
    public class ViewHolder {
        TextView name;
    }
    
    @Override
    public int getCount() {
        return MainActivity.movieNamesArrayList.size();
    }
    
    @Override
    public MovieNames getItem(int position) {
        return MainActivity.movieNamesArrayList.get(position);
    }
    
    @Override
    public long getItemId(int position) {
        return position;
    }
    
    public View getView(final int position, View view, ViewGroup parent) {
        final ViewHolder holder;
        if (view == null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.listview_item, null);
            // Locate the TextViews in listview_item.xml
            holder.name = (TextView) view.findViewById(R.id.name);
            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }
        // Set the results into TextViews
        holder.name.setText(MainActivity.movieNamesArrayList.get(position).getAnimalName());
        return view;
    }
    
    // Filter Class
    public void filter(String charText) {
        charText = charText.toLowerCase(Locale.getDefault());
        MainActivity.movieNamesArrayList.clear();
        if (charText.length() == 0) {
            MainActivity.movieNamesArrayList.addAll(arraylist);
        } else {
            for (MovieNames wp : arraylist) {
                if (wp.getAnimalName().toLowerCase(Locale.getDefault()).contains(charText)) {
                    MainActivity.movieNamesArrayList.add(wp);
                }
            }
        }
        notifyDataSetChanged();
         }
    
      }
    
  2. MainActivity.Java-Klasse: 

          import Android.support.v7.app.AppCompatActivity;
          import Android.os.Bundle;
          import Android.view.View;
          import Android.widget.AdapterView;
          import Android.widget.ListView;
          import Android.widget.SearchView;
          import Android.widget.Toast;
          import Java.util.ArrayList;
    
           public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
    
           // Declare Variables
         private ListView list;
      private ListViewAdapter adapter;
      private SearchView editsearch;
          private String[] moviewList;
         public static ArrayList<MovieNames> movieNamesArrayList = new ArrayList<MovieNames>();
    
          @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
    
    // Generate sample data
    
    moviewList = new String[]{"Xmen", "Titanic", "Captain America",
            "Iron man", "Rocky", "Transporter", "Lord of the rings", "The jungle book",
            "Tarzan","Cars","Shreck"};
    
    // Locate the ListView in listview_main.xml
    list = (ListView) findViewById(R.id.listview);
    
    movieNamesArrayList = new ArrayList<>();
    
    for (int i = 0; i < moviewList.length; i++) {
        MovieNames movieNames = new MovieNames(moviewList[i]);
        // Binds all strings into an array
        movieNamesArrayList.add(movieNames);
    }
    
    // Pass results to ListViewAdapter Class
    adapter = new ListViewAdapter(this);
    
    // Binds the Adapter to the ListView
    list.setAdapter(adapter);
    
    // Locate the EditText in listview_main.xml
    editsearch = (SearchView) findViewById(R.id.search);
    editsearch.setOnQueryTextListener(this);
    
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(MainActivity.this, movieNamesArrayList.get(position).getAnimalName(), Toast.LENGTH_SHORT).show();
        }
    });
              }
    
         @Override
        public boolean onQueryTextSubmit(String query) {
    
                  return false;
         }
    
    
    
        @Override
        public boolean onQueryTextChange(String newText) {
              String text = newText;
              adapter.filter(text);
             return false;
         }
       }
    
0
user6017633

Menü: menu_doctor_list.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    xmlns:app="http://schemas.Android.com/apk/res-auto">
    <item
        Android:id="@+id/action_search"
        Android:icon="@drawable/ic_search_white_24dp"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="Android.support.v7.widget.SearchView"
        Android:title="Search"/>
</menu>

Tätigkeit:  

public class ListActivity extends AppActivity implements SearchView.OnQueryTextListener { 

public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.menu_doctor_list, menu);

        MenuItem searchItem = menu.findItem(R.id.action_search);

        SearchView searchView = (SearchView) searchItem.getActionView();
        searchView.setQueryHint("Search Doctor by Name or Specialization");
        searchView.setOnQueryTextListener(this);
        searchView.setOnCloseListener(this);
        searchView.setIconified(false);

        return true;
    }

@Override
    public boolean onQueryTextSubmit(String query) {
        System.out.println("query = " + query);
        doctorListAdapter.getFilter().filter(query);
        return true;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        System.out.println("query = " + newText);
        doctorListAdapter.getFilter().filter(newText);
        return true;
    }
}

Adapter:  

public class ListAdapter extends RecyclerView.Adapter<ListAdapter.BindingHolder> implements Filterable {

private List<DoctorInfo> mOriginalValues; // Original Values
    private List<DoctorInfo> mDisplayedValues;    // Values to be displayed use this in onBindViewHolder()

    public DoctorListAdapter(Context context, List<DoctorInfo> appointmentList) {
        this.mOriginalValues = appointmentList;
        this.mDisplayedValues = appointmentList;
    }

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

            @SuppressWarnings("unchecked")
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {

                mDisplayedValues = (ArrayList<DoctorInfo>) results.values; // has the filtered values
                notifyDataSetChanged();  // notifies the data with new filtered values
            }

            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                FilterResults results = new FilterResults();        // Holds the results of a filtering operation in values
                ArrayList<DoctorInfo> FilteredArrList = new ArrayList<DoctorInfo>();

                if (mOriginalValues == null) {
                    mOriginalValues = new ArrayList<DoctorInfo>(mDisplayedValues); // saves the original data in mOriginalValues
                }

                /********
                 *
                 *  If constraint(CharSequence that is received) is null returns the mOriginalValues(Original) values
                 *  else does the Filtering and returns FilteredArrList(Filtered)
                 *
                 ********/
                if (constraint == null || constraint.length() == 0) {

                    // set the Original result to return
                    results.count = mOriginalValues.size();
                    results.values = mOriginalValues;
                } else {
                    constraint = constraint.toString().toLowerCase();
                    for (int i = 0; i < mOriginalValues.size(); i++) {
                        String data = mOriginalValues.get(i).getFirstname() + " " + mOriginalValues.get(i).getLastname();
                        if (data.toLowerCase().startsWith(constraint.toString())) {
                            FilteredArrList.add(mOriginalValues.get(i));
                        }
                    }
                    // set the Filtered result to return
                    results.count = FilteredArrList.size();
                    results.values = FilteredArrList;
                }
                return results;
            }
        };
        return filter;
    }
}
0
SWAPDROiD