HttpURLConnection 객체를 통해서 데이터를 받아온 이후에
listview에 연결된 ArrayList 객체에 정보를 업데이트 하려고 합니다.
protected void onPostExecute(ArrayList<RoomData> resultRoomDataList) {
for(int i = 0; i < resultRoomDataList.size(); i++){
((FrameActivity) getActivity()).reservationListCache.add(resultRoomDataList.get(i));
}
if(roomDataList != null){
for(int i = 0; i < ((FrameActivity) getActivity()).reservationListCache.size(); i++){
roomDataList.add(((FrameActivity) getActivity()).reservationListCache.get(i));
}
listViewAdapter.notifyDataSetChanged();
}
}
위의 코드는 정상적으로 작동하고
아래의 코드는 리스트뷰가 정상적으로 갱신되지 않습니다.
((FrameActivity) getActivity()).reservationListCache 객체는 해당코드가 Fragment내부에서 진행되어서
그 부모 activity에 존재하는 ArrayList<RoomData>객체입니다.
protected void onPostExecute(ArrayList<RoomData> resultRoomDataList) {
for(int i = 0; i < resultRoomDataList.size(); i++){
((FrameActivity) getActivity()).reservationListCache.add(resultRoomDataList.get(i));
}
if(roomDataList != null){
roomDataList = (ArrayList<RoomData>) ((FrameActivity) getActivity()).reservationListCache.clone();
listViewAdapter.notifyDataSetChanged();
listViewAdapter.notifyDataSetChanged();
}
}
어째서 안되는 것일까요? clone()이라는 함수가 새로운 ArrayList객체를 생성해주는 함수가 아닌가요?
고수님들 답변 부탁드립니다