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

AdapterView.OnItemClickListener 사용중 에러

0 추천
AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
     if (selectCount < 10) {
            ImageView selectView = (ImageView) view;
            selectView.setColorFilter(Color.argb(150, 100, 255, 100));
 
            index.add(position);
            Log.d("Da", "selected Item Position: " + position);
     } else
            Toast.makeText(PicActivity.this, "10개를 초과하였습니다", 1000).show();
 
     if (limitSelect > 0)
            limitSelect--;
 
     if (selectCount < 10)
            selectCount++;
 
     String s = String.valueOf(selectCount);
     tv_count.setText(s);
 
     //checkDuplication(position, view);
     };
};
 
그리드 뷰에 나타나있는 사진들을 선택시 Position값을 ArrayList로 넘겨줍니다.
그리고 선택된 사진은 selectView.setColorFilter(Color.argb(150, 100, 255, 100))를 통하여 색변환을 하고있습니다.
 
여기서 선택되어 있는 사진을 한번더 누를시 ArrayList에 Position값과 변환된 색을 다시 복구하고 싶습니다.
간단하게 선택 해지할 경우 원상복귀를 시키고 싶은데요,
언제 어떻게 검사를 해야하는지 모르겠습니다. 
 
AdapterView.OnItemClick에서 검사를 하니 누르자마자 해제가 되버리네요..ㅠㅠㅠㅠㅠㅠㅠ
 
연필좀주세요 (810 포인트) 님이 2015년 1월 9일 질문
연필좀주세요님이 2015년 1월 9일 수정

2개의 답변

+1 추천
 
채택된 답변
ArrayList의 아이템에 선택여부를 표시하는 boolean 값을 추가해서 사용해보셔요

클릭시 이 값을 확인해서 selectCount를 변경해줘보셔요..

그리고 종료할때 ArrayList의 아이템들의 boolean 값이 true인것만 따로 ArrayList로 빼와서 처리하면 되것지요
nicehee (73,100 포인트) 님이 2015년 1월 9일 답변
연필좀주세요님이 2015년 1월 9일 채택됨
답변 감사합니다! : )
아.. 근데 ItemClick할때 검사를 하니, 사진이 선택되자마자 다시 해제되는데..
사진을 클릭하면 파랗게 변하고, 다시 선택하면 원상복귀 되야하는데
지금은 누르면 바로 해제되버리네요..
눌렸을때 아이템의 boolean 값을 가져와서 바꿔주고
바꿔준값으로 사진의 상태로 적용하심 댑니당
제가만든 마켓의 연사후 움짤이 바로 이방법을 사용했지요
https://play.google.com/store/apps/details?id=nicehee.micromotion&hl=ko
헐 저 어플알아요!!  대단하시네요..
감사합니다 ㅜㅜ
+2 추천
Adapter 안에 사진 선택 여부를 알려주는 ArrayList를 생성하여 관리 하면 될거 같네요.
노예의집 (23,370 포인트) 님이 2015년 1월 9일 답변
바로 적용했습니다. 감사합니다 : )
...