@Override public View getView(int position, View convertView, ViewGroup parent) { // final View result; ViewHolderItem viewHolder; // inflate the layout LayoutInflater inflater = ((Activity) context).getLayoutInflater(); convertView = inflater.inflate(R.layout.adapter_layout, parent, false); // if (convertView == null) { // well set up the ViewHolder viewHolder = new ViewHolderItem(); viewHolder.name = (TextView) convertView.findViewById(R.id.name); viewHolder.phone = (TextView) convertView.findViewById(R.id.phone); viewHolder.picture = (ImageView) convertView.findViewById(R.id.picture); viewHolder.favori = (ImageView) convertView.findViewById(R.id.favoris); // store the holder with the view. convertView.setTag(viewHolder); /*} else viewHolder = (ViewHolderItem) convertView.getTag();*/ final Contact contact = (Contact) getItem(position); viewHolder.name.setText(contact.getName()); viewHolder.phone.setText(contact.getPhone()); viewHolder.favori.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { contact.setFav(!contact.getFav()); ContactDB.getDataBase().updateContact(contact); notifyDataSetChanged(); } }); if (contact.getFav()) viewHolder.favori.setImageResource(android.R.drawable.btn_star_big_on); else viewHolder.favori.setImageResource(android.R.drawable.btn_star_big_off); Uri uri = contact.getPicture(); if (!(uri == null || uri.toString().isEmpty())) { try { Bitmap bmp = getBitmapFromUri(uri, context); viewHolder.picture.setImageBitmap(RoundedImageView.getCroppedBitmap(bmp, 120)); } catch (Exception e) { Log.e("ProfileAdapter", e.getMessage()); e.printStackTrace(); } } return convertView; }