title: change item from RecyclerView out of onBindViewHolder
body: <p>On my <code>onBindViewHolder</code> I have this to set the <code>setImageResource</code></p>
  
  <pre><code>holder.card_image.setImageResource(image);
  </code></pre>
  
  <p>But my items can be purchased so, I have this to purchase on my <code>holder.view.setOnClickListener()</code></p>
  
  <pre><code> bp.purchase((Activity) mContext,model.getProduct_id());
  </code></pre>
  
  <p>so, it goes to this method : </p>
  
  <pre><code>bp = new BillingProcessor() new BillingProcessor.IBillingHandler() {
              @Override
              public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
                  showToast("onProductPurchased: " + productId);
                  //Purchased OK
                  //WANT TO CHANGE THE IMAGE ONCE PURCHASE IS OK
  
  
              }
              @Override
              public void onBillingError(int errorCode, @Nullable Throwable error) {
                  showToast("onBillingError: " + Integer.toString(errorCode));
              }
              @Override
              public void onBillingInitialized() {
                  showToast("onBillingInitialized");
                  readyToPurchase = true;
  
              }
              @Override
              public void onPurchaseHistoryRestored() {
                  showToast("onPurchaseHistoryRestored");
                  for(String sku : bp.listOwnedProducts())
                      Log.d("skuProducts", "Owned Managed Product: " + sku);
                  for(String sku : bp.listOwnedSubscriptions())
                      Log.d("skuProducts", "Owned Subscription: " + sku);
  
              }
          });
  </code></pre>
  
  <p>How do I change it if I'm not <code>onBindViewHolder</code>?</p>
  
  <p>My adapter looks like : </p>
  
  <pre><code>FirebaseRecyclerAdapter adapter = new   FirebaseRecyclerAdapter&lt; CardPOJO, CardHolder&gt;(options) {
          @Override
          public CardHolder onCreateViewHolder(ViewGroup parent, int viewType) {
              //inflate the single recycler view layout(item)
              View view = LayoutInflater.from(parent.getContext())
                      .inflate(R.layout.card_product, parent, false);
              int width = parent.getMeasuredWidth() / 2;
              width -= mContext.getResources().getDimensionPixelSize(R.dimen._8sdp);
              final CardHolder cardViewHolder = new CardHolder(view,width);
              return cardViewHolder;
          }
  
          @Override
          public void onDataChanged() {
              super.onDataChanged();
              tv.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE);
          }
  
          @Override
          protected void onBindViewHolder(CardHolder holder, int position, final CardPOJO model) {
              holder.state.setText(model.getState());
              holder.cardName.setText(model.getName());
              switch (model.getState()){
                  case "free":
                      //Img free
                      break;
                  case "not_free":
                      //Img not free
                      break;
                  default:
                      break;
              }
              holder.view.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      if(model.getState().equals("free")){
                         //stuff
                      }
                      else{
                         //stuff
                          }
                          root_ref.child("PurchasedProducts").child(currentuser).addValueEventListener(new ValueEventListener() {
                              @Override
                              public void onDataChange(DataSnapshot dataSnapshot) {
                                  bp.purchase((Activity) mContext,model.getProduct_id()); //HERE I CALL THE PURCHASE SO IF IT'S OK I WANT TO DO SOMETHING LIKE holder.card_image.setImageResource(image);
                              }
  
                              @Override
                              public void onCancelled(DatabaseError databaseError) {
  
                              }
                          });
                      }
  
                  }
              });
  
  
          }
      };
      adapter.startListening();
      products_recycler.setAdapter(adapter);
  </code></pre>