Есть проблема.В моей основной деятельности у меня есть ListView.И мне нужно обновлять его каждый раз, когда я возвращаюсь к этому занятию.Для этого я использую метод onResume ():
@Override
protected void onResume() {
super.onResume();
refreshCategoriesList();
}
private void refreshCategoriesList() {
// ...
categoriesListAdapter = new CategoryListItemAdapter(
this, R.layout.category_item,
categories
);
categoriesListView.setAdapter(categoriesListAdapter);
}
Как видите, я использую адаптер обновления, расширенный от ArrayAdapter, для изменения данных в ListView.
Но в некоторых случаях мне нужно прокрутить этот списокдо конца, например.когда я добавляю новый предмет к нему.И я использую метод onActivityResult (...) для этого:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// ...
refreshCategoriesList();
categoriesListView.setSelection(categoriesListAdapter.getCount() - 1);
}
Но у меня есть одна проблема.Когда я добавляю новый элемент в мой список, оба эти метода выполняются в порядке onActivityResult (...) и после этого onResume ().И у меня есть:
- Данные списка обновляются до времен с помощью refreshCategoriesList () (но это не главная проблема);
- После выполнения onResume () прокручивается до конечного списка, восстановленного до первого элементаposition :( Это проблема. Потому что, когда я добавляю новый элемент, мне нужен список прокрутки до конца.
Как я могу решить эту проблему. Могу ли я в некоторых случаях вызывать только onActivityResult (...)метод (когда мне нужно прокрутить список) и другой метод onResume () (когда я просто хочу обновить данные списка)?