我遇到一个问题,当我调用adapter.notifyDataSetChange()
刷新onResume()
函数的listActifity时,它似乎无法从该函数的其他函数之后的活动。adapter.notifyDataSetChange()在onResume()调用后不起作用
我希望当用户单击后退按钮时(在另一个屏幕上)刷新列表(视图)并返回到带有列表的窗口。 我注意到的一件事是,当我从数组列表中更改其中一个对象时,notifyDataSetChange()
工作(但来自其他函数),但不是当我想添加或删除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())。
任何想法,为什么这不工作?
使用“{}”为代码 –
按钮作为一个说明大多数适配器'加()','中的addAll()'等方法调用'notifyDataSetChanged ()'给你。什么数据类型是“适配器”和“桶”? – Sam
adapter是一个ExerciseBucketArrayAdapter,它扩展了ArrayAdapter,bucket是一个ArrayList ,其中ExerciseBucket只是一个带有getters和setter的可序列化数据类。希望这可以帮助。 –
user1325843