我遇到一個問題,當我調用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