@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = inflater.inflate(R.layout.list_item_user, null); holder = new ViewHolder(); holder.login = (TextView) convertView.findViewById(R.id.userLogin); holder.add = (CheckBox) convertView.findViewById(R.id.addCheckBox); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } // final QBUser user = dataSource.get(position); final QBUser user = filtered.get(position); if (user != null) { holder.login.setText(user.getLogin()); holder.add.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if ((((CheckBox) v).isChecked())) { selected.add(user); } else { selected.remove(user); } } }); holder.add.setChecked(selected.contains(user)); } return convertView; }