Yes, there is a way. Assuming that I can identify the list item, for example, assigning View.setTag to some value, I can iterate over the list items and, if desired, reinstall only one list item or even update only some sub-views of the item.
This is simple and relatively cheap (linear search):
for(int i = list.getChildCount(); --i>=0; ){ View v = list.getChildAt(i); Object id = v.getTag(); if(id==myId){ updateListItem(id, v); break; } }
where myId is some identifier of the item I want to update, and updateListItem makes the desired changes to the list item. Proven and works great and very effective.
source share