AndroidアクティビティonResume()とonActivityResult()の競合
-
27-10-2019 - |
質問
問題があります。私のメインアクティビティには、ListViewがあります。また、このアクティビティに戻るたびに更新する必要があります。これにはonResume()メソッドを使用します: ジェネラコディセタグプレ
ご覧のとおり、ListViewのデータを変更するためにArrayAdapterから拡張された更新アダプターを使用しています。
しかし、場合によっては、このリストを最後までスクロールする必要があります。新しいアイテムを追加したとき。そして、私はこれにonActivityResult(...)メソッドを使用します: ジェネラコディセタグプレ
しかし、私には1つの問題があります。リストに新しいアイテムを追加すると、この両方のメソッドがonActivityResult(...)の順序で実行され、その後onResume()が実行されます。そして私は持っています:
- refreshCategoriesList()を使用して更新されたデータを一覧表示します(ただし、これは主な問題ではありません)。
- onResume()の実行後、リストを最後までスクロールして最初のアイテムの位置に復元しました:(問題です。新しいアイテムを追加するときにリストを最後までスクロールしたいからです。
この問題を解決するにはどうすればよいですか。場合によっては、onActivityResult(...)メソッド(リストをスクロールする必要がある場合)と他のonResume()メソッド(単にリストデータを更新する必要がある場合)のみを呼び出すことができますか?
解決
You can use notifyDataSetChanged() method from ArrayAdapter instead of recreating adapter every time.
private void refreshCategoriesList() {
categoriesListAdapter.notifyDataSetChanged();
}
所属していません StackOverflow