private ArrayList<Images> adapterArrayList = null;
public FolderAdapter(Context context, int resource, ArrayList<Images> list, AdapterListener listener) {
super(context, resource, list);
this.context = context;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.listener = listener;
adapterArrayList = list;
}
먼저 아답터의 생성자부분 입니다.
그리고 어레이리스트를 셋팅해주는 부분입니다.
public void setArrayList(ArrayList<Images> adapterList){
if (adapterArrayList != null && adapterArrayList.size() > 0){
Log.d("check","adapterList : "+adapterList.size());
adapterArrayList.clear();
Log.d("check","adapterList : "+adapterList.size());
}
adapterArrayList = adapterList;
Log.d("check","size : "+adapterArrayList.size());
}
로그를 찍어서 확인해봤는데 기존에 있던 어레이리스트를 clear 해버리면 매개변수까지 같이 clear되어져버립니다.
adapter = new FolderAdapter(AlbumActivity.this,R.layout.album_item,image_list, this);
이부분이 처음 생성자가 불러지는 부분이고
adapter.setArrayList(image_list);
adapter.notifyDataSetChanged();
문제가 생기는 부분입니다.
아답터클래스에서 adapterList를 clear하면 그리드뷰를 사용하는 다른 클래스에서 가지고있던 image_list까지 clear 되어져버리는현상입니다.
왜이런걸까요?