ListView
не поддерживает обновление одной позиции.
Вы должны обновить адаптер новыми данными (даже если вы изменили одну позицию) и, вызовите mAdapter.notifyDataSetChanged()
Если вы получите View
по его позиции (через listView.getChildAt()
) будет работать. Однако, если вы прокрутите список вверх и вниз, в этом представлении снова отобразятся старые данные, поскольку адаптер не знает об изменении (и именно адаптер обновляет представление контекста представления getView()
).
Когда вы вызываете notifyDataSetChanged()
, вы сообщаете адаптеру, что в вашем наборе данных есть новая информация, и ListView/Adapter
перерисовывает видимые элементы (он не перерисовывает весь список сразу ... только видимыеitems).
Возможно, вы захотите изменить на RecyclerView
в будущем. BaseAdapter
, используемый в RecyclerView
вспомогательных действиях, таких как добавление / удаление / обновление одной позиции.