앨범에서 이미지를 선택해서 가져오면
그 갯수만큼 for문으로 돌면서 이미지뷰를 생성합니다.
이미지뷰마다 onClickListener 가 있고
이미지뷰를 클릭하면 해당 이미지 뷰를 삭제해줍니다.
.remove(i) 로 삭제하여야 하기때문에
final int finalI = i ; 선언해주고
.remove(finalI) 로 온클릭메소드 안에서 삭제해주고 있었습니다.
for (int i = 0; i < selectedPhotos.size(); i++) {
final int finalI = i;
addImageLayout.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
imageList.removeView(v);
pathList.remove(finalI);
pathList.get(finalI);
return true;
}
});
}
이미지들은 정상적으로 삭제되어서 신경을 안쓰고 있었는데
이미지 추가를 두번 했을 경우에 새로운 액티비티로 넘어가려고 보니 다른이미지가 뜹니다.
로그를 찍어보니 final 이기 때문에 첫 두장 추가 후 새로 두장 추가하면 0 1 2 3 이 아닌 0 1 0 1 이 뜨네요
위치에 해당하는 놈을 제대로 갖고오고 싶은데,,, 어떤식으로 해결하면 좋을까요