마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

final int 질문이 있습니다.

0 추천

앨범에서 이미지를 선택해서 가져오면

그 갯수만큼 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 이 뜨네요

 

위치에 해당하는 놈을 제대로 갖고오고 싶은데,,, 어떤식으로 해결하면 좋을까요

 

 

 

status (1,410 포인트) 님이 2016년 11월 10일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...