Да, есть способ. Предполагая, что я могу идентифицировать элемент списка, например, присваивая View.setTag ему какое-то значение, я могу перебирать элементы списка и, если необходимо, перепривязывать только один элемент списка или даже обновлять только некоторое подвид представления элемента.
Это просто и относительно дешево (линейный поиск):
for(int i = list.getChildCount(); --i>=0; ){
View v = list.getChildAt(i);
Object id = v.getTag();
if(id==myId){
updateListItem(id, v);
break;
}
}
где myId - это некоторый идентификатор элемента, который я хочу обновить, а updateListItem вносит необходимые изменения в элемент списка. Доказано, работает отлично и очень эффективно.