 <p><code>R.layout.da_item</code> file only contains <code>R.id.ingredientbox</code> so your <code>covertView</code> and <code>holder.name</code> are referring to the same object.</p> <p>Now when you call </p> <pre><code>convertView.setTag(holder); </code></pre> <p>holder set to tag of convertView object and then you call</p> <pre><code>holder.name.setTag(state); </code></pre> <p>which overrides the tag as both objects are same.</p> <p>Try to remove 2nd call and check.</p> <p><strong>EDIT</strong> Change your holder class to:</p> <pre><code> private class ViewHolder { Items state; CheckBox name; } </code></pre> <p>don't write <code>holder.name.setTag(state);</code>. Instead do following:</p> <pre><code>holder.state=state; </code></pre> <p>Now when you want items just say:</p> <pre><code>Items _state = ((ViewHolder) cb.getTag()).state; </code></pre>