Your problems come from the way you setup the getView()
method and how you set the checked item in that SparseBooleanArray. I've edited your adapter's code and it should work now. The main changes are in the OnCheckedChangeListener
field:
public class MyCustomAdapter extends BaseAdapter implements Filterable {
private Context mContext;
private LayoutInflater mInflater;
private SparseBooleanArray mSparseBooleanArray;
// from where do you get the data?
private ArrayList