RealmSearchAdapter не перехватывает представление

У меня есть gridview с элементами, которые я могу увеличить или уменьшить его значения, что происходит, когда я изменяю значение элемента и прокручиваю экран вниз и прокручиваю назад, что изменилось, что я сделал, и если я прокручиваю вниз и вверх Пару раз я вижу изменения, которые я сделал снова, что мне здесь не хватает?

public class SearchItemViewAdapter extends RealmSearchAdapter<Itens, SearchItemViewAdapter.ViewHolder> implements RealmChangeListener { public SparseBooleanArray mSparseBooleanArray; public SearchItemViewAdapter(Activity context, Realm realm, String filterColumnName) { super(context, realm, filterColumnName); mSparseBooleanArray = new SparseBooleanArray(); } @Override public void onChange() { notifyDataSetChanged(); } public RealmList<Itens> getCheckedItems() { RealmList<Itens> mTempArry = new RealmList<>(); for (int i = 0; i < realmResults.size(); i++) { if (mSparseBooleanArray.get(i)) { mTempArry.add(realmResults.get(i)); } } return mTempArry; } public class ViewHolder extends RealmSearchViewHolder { public SearchItemView itemView; public ViewHolder(FrameLayout container, TextView footerTextView) { super(container, footerTextView); } public ViewHolder(SearchItemView itemView) { super(itemView); this.itemView = itemView; } } @Override public ViewHolder onCreateRealmViewHolder(ViewGroup viewGroup, int viewType) { ViewHolder vh = new ViewHolder(new SearchItemView(viewGroup.getContext())); return vh; } @Override public void onBindRealmViewHolder(ViewHolder viewHolder, int position) { final Itens item = realmResults.get(position); viewHolder.itemView.bind(item); viewHolder.itemView.check.setTag(position); viewHolder.itemView.check.setChecked(mSparseBooleanArray.get(position)); viewHolder.itemView.check.setOnCheckedChangeListener(mCheckedChangeListener); } CompoundButton.OnCheckedChangeListener mCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked); } }; @Override public ViewHolder onCreateFooterViewHolder(ViewGroup viewGroup) { View v = inflater.inflate(R.layout.footer_view, viewGroup, false); return new ViewHolder( (FrameLayout) v, (TextView) v.findViewById(R.id.footer_text_view)); } @Override public void onBindFooterViewHolder(ViewHolder holder, int position) { super.onBindFooterViewHolder(holder, position); holder.itemView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { } } ); } } 

SearchItemView

  public class SearchItemView extends RelativeLayout { @Bind(R.id.codigo) TextView codigo; @Bind(R.id.nomeproduto) TextView nome; @Bind(R.id.preco) TextView preco; @Bind(R.id.valor) TextView itemq; @Bind(R.id.more) ImageView more; @Bind(R.id.less) ImageView less; @Bind(R.id.check) CheckBox check; final int nStart = 0; final int nEnd = 10000000; public SearchItemView(Context context) { super(context); init(context); } private void init(Context context) { inflate(context, R.layout.add_itens_adapter, this); ButterKnife.bind(this); } public void bind(Itens item) { nome.setText(item.getNome()); codigo.setText(item.getCodigo()); preco.setText(item.getPreco()); more.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String getString = String.valueOf(itemq.getText()); int curent = Integer.parseInt(getString); if (v == more) { if (curent < nEnd) { curent++; itemq.setText(String.valueOf(curent)); } } } }); less.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String getString = String.valueOf(itemq.getText()); int curent = Integer.parseInt(getString); if (v == less) { if (curent > nStart) { curent--; itemq.setText(String.valueOf(curent)); } } } }); } }