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

이미지뷰를 클릭하면 해당 이미지뷰가 사라지게 하고 싶습니다.

0 추천
구성은

이미지뷰를 ArrayList에 넣어서 클릭하면 해당 이미지뷰가 사라지게 하고 싶습니다.

 

1. 그런데 이미지뷰는 ArrayList에 어떻게 넣어야 할 지 모르겠어요. 계속 casting이 안된다고만 나와서요.

2, 지금 xml로 이미지뷰는 만들어 놓았는데, 이 이미지뷰를 클릭하면 그 이미지뷰가 사라지게 하는 법을 모르겠습니다.

 

도와주세요..ㅠㅠ
laon 1 (270 포인트) 님이 2014년 8월 25일 질문

1개의 답변

+1 추천
 
채택된 답변

1. ArrayList 를 ArrayList<ImageView> 로 선언하면 캐스팅 없이 들어 갈텐데.. ArrayList를 어떻게 선언하신건가요? 다르게 하셨으면 ArrayList<ImageView>  로 형식 지정해 주세요

 

2. http://developer.android.com/reference/android/view/View.html#setVisibility(int) 를 사용해서 사라지게 하시면 됩니다.

imageView.setVisibility(View.GONE);  // 사라짐 , 공간도 유지 안함

imageView.setVisibility(View.INVISIBLE);  // 사라짐 , 공간은 유지

imageView.setVisibility(View.VISIBLE);  // 화면에 표시

사악미소 (65,330 포인트) 님이 2014년 8월 25일 답변
laon 1님이 2014년 8월 25일 채택됨
tile.add((ImageView)findViewById(R.id.myb8));
        tmp = tile.get(8);
        tmp.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "click 8", 0).show();
               
               
            }
            ImageView.setVisibility(myb8.GONE);
        });
      

1번은 해결했습니다!!
근데 2번은 이렇게 사용하는게 아닌가요..? 너무 초보라 죄송합니다...ㅠ
tile이 어레이 리스트이구 tmp가 이미지뷰 객체일 듯 한데 맞나요?
제 생각이 맞다면. 아래와 같이 고치시면 되요..
  final ImageView tmp8 = tile.get(8);
  tmp8.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "click 8", 0).show();
                tmp8.setVisibility(myb8.GONE);
                
            }

        });
...