title: What is difference between holder.getAdapterPosition() and position attribute from constructor in onBindViewHolder()
body: <p>Here is my code - </p>
  
  <pre><code>public void onBindViewHolder(myViewHolder holder, int position) {
  
          //1. details obj = list.get(holder.getAdapterPosition());
          //2. details obj = list.get(position);
  
          holder.position = position;
      }
  </code></pre>
  
  <p>I am getting a warning</p>
  
  <blockquote>
    <p>Do not treat position as fixed; only use immediately and call
    holder.getAdapterPosition() to look it up later RecyclerView will not
    call onBindViewHolder again when the position of the item changes in
    the data set unless the item itself is invalidated or the new position
    cannot be determined.  For this reason, you should only use the
    position parameter while acquiring the related data item inside this
    method, and should not keep a copy of it.  If you need the position of
    an item later on (e.g. in a click listener), use getAdapterPosition()
    which will have the updated adapter position later.</p>
  </blockquote>
  
  <p>So i am confused from 1 and 2 which should i prefer and why? As it says getAdapterPosition() gives updated position and i am getting values from list based on position.</p>
  
  <p>Thank you.</p>