public class MyArrayAdapter extends ArrayAdapter<MyForArrayAdapter>
//allMyForArrayAdapter = это ArrayList<String> - отдельно массив string productName - хотя мне кажется это костылём
private class MyFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
charSequence = charSequence.toString().toLowerCase();
FilterResults results = new FilterResults();
if (charSequence.toString().length() > 0) {
ArrayList<String> stringList = new ArrayList<>();
for (int i = 0; allMyForArrayAdapter.size() > i; ++i) {
String str = allMyForArrayAdapter.get(i);
if (str.toLowerCase().contains(charSequence))
stringList.add(str);
}
results.count = stringList.size();
results.values = stringList;
} else {
synchronized (this) {
results.values = allMyForArrayAdapter;
results.count = allMyForArrayAdapter.size();
}
}
return results;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
/**а что тут написать?*/
}
}
public class StateArrayAdapter {
private Integer ID;
private String nameProduct;
public StateArrayAdapter(Integer ID, String nameProduct) {
this.ID = ID;
this.nameProduct = nameProduct;
}
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
public String getNameProduct() {
return nameProduct;
}
public void setNameProduct(String nameProduct) {
this.nameProduct = nameProduct;
}
}
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import www.finefood.R;
import java.util.ArrayList;
import java.util.List;
public class SpecialArrayAdapter extends ArrayAdapter<StateArrayAdapter> {
private LayoutInflater inflater;
private int layout;
private List<StateArrayAdapter> list;
public SpecialArrayAdapter(Context context,
int resource, int textViewResourceId,
ArrayList<StateArrayAdapter> list) {
super(context, resource, textViewResourceId, list);
this.list = list;
this.layout = resource;
this.inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = inflater.inflate(this.layout, parent, false);
TextView textView = (TextView) view.findViewById(R.id.text_view_array_adapter);
StateArrayAdapter stateArrayAdapter = list.get(position);
textView.setText(stateArrayAdapter.getNameProduct());
return view;
}
}
private void addAdapter(Context context) {
this.setAdapter(new SpecialArrayAdapter(context,
R.layout.list_item_array_adpter,R.id.text_view_array_adapter,
GetSQLCursorProductName.getInstance().list));
}