adapter.notifyDataSetChange()
関数からlistActifityを更新するためにを呼び出すと、onResume()
後でそのアクティビティの他の関数からは機能していないように見えるという問題があります。
ユーザーが(別の画面で)戻るボタンをクリックしてリストのあるウィンドウに戻ったときに、リスト(ビュー)を更新したい。私が気づいたことのnotifyDataSetChange()
1つは、配列リストからオブジェクトの1つを変更したときに(他の関数から)機能することですが、オブジェクトを追加または削除したいときは機能しませんArrayList
。これは私にとってこれまでのところうまくいっていますが、毎回リストを再クエリする必要はありません。
@Override
protected void onResume() {
lightWeightDAO.open(); //db connection
adapter.clear();
buckets = lightWeightDAO.getExerciseBucketsByWorkoutId(workout.getId());
adapter.addAll(buckets);
adapter.notifyDataSetChanged();
super.onResume();
}
onResume()からnotifyDataSetChange()を削除すると、すべてが機能しているように見えます(arraylistを変更した後に単純なnotifyDataSetChange()を呼び出すだけです)。
これが機能しない理由はありますか?