Конфликт действий Android onResume () и onActivityResult ()
-
27-10-2019 - |
Вопрос
Возникла проблема. В моей основной деятельности у меня есть ListView. И мне нужно обновлять его каждый раз, когда я возвращаюсь к этому действию. Для этого я использую метод onResume ():
родовое словоКак видите, я использую адаптер обновления, расширенный из ArrayAdapter, для изменения данных в ListView.
Но в некоторых случаях мне нужно прокрутить этот список до конца, например. когда я добавляю к нему новый элемент. И для этого я использую метод onActivityResult (...):
родовое словоНо у меня есть одна проблема. Когда я добавляю новый элемент в свой список, оба этих метода выполняются в порядке onActivityResult (...) и после этого onResume (). И у меня есть:
- Список данных, обновляемых до времени с помощью refreshCategoriesList () (но это не главная проблема);
- После выполнения onResume () список с прокруткой до конца восстановлен до позиции первого элемента :( Это проблема. Потому что, когда я добавляю новый элемент, я хочу прокрутить список до конца.
Как решить эту проблему. Могу ли я в некоторых случаях вызывать только метод onActivityResult (...) (когда мне нужно прокрутить список) и другой метод onResume () (когда я просто хочу обновить данные списка)?
Решение
Вы можете использовать метод notifyDataSetChanged () из ArrayAdapter вместо того, чтобы каждый раз заново создавать адаптер.
родовое слово