Вопрос

Возникла проблема. В моей основной деятельности у меня есть ListView. И мне нужно обновлять его каждый раз, когда я возвращаюсь к этому действию. Для этого я использую метод onResume ():

родовое слово

Как видите, я использую адаптер обновления, расширенный из ArrayAdapter, для изменения данных в ListView.

Но в некоторых случаях мне нужно прокрутить этот список до конца, например. когда я добавляю к нему новый элемент. И для этого я использую метод onActivityResult (...):

родовое слово

Но у меня есть одна проблема. Когда я добавляю новый элемент в свой список, оба этих метода выполняются в порядке onActivityResult (...) и после этого onResume (). И у меня есть:

  1. Список данных, обновляемых до времени с помощью refreshCategoriesList () (но это не главная проблема);
  2. После выполнения onResume () список с прокруткой до конца восстановлен до позиции первого элемента :( Это проблема. Потому что, когда я добавляю новый элемент, я хочу прокрутить список до конца.

Как решить эту проблему. Могу ли я в некоторых случаях вызывать только метод onActivityResult (...) (когда мне нужно прокрутить список) и другой метод onResume () (когда я просто хочу обновить данные списка)?

Это было полезно?

Решение

Вы можете использовать метод notifyDataSetChanged () из ArrayAdapter вместо того, чтобы каждый раз заново создавать адаптер.

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top