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

이지뷰를 동적으로 추가하고 삭제 하는 방법을 알고 싶습니다.

0 추천
ImageView iv = new ImageView(this);
  iv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  iv.setBackgroundResource(R.drawable.te1);
  layout.addView(iv, new LayoutParams(LayoutParams.ma, LayoutParams.WRAP_CONTENT));

 

소스를 보시면

뷰를 추가 시키는 부분인데요. 뷰 생성하는 부분에  

ImageView iv=(ImageView)findViewById(R.id.imageView1);

요런식으로 넣으면 에러가 뜨더라고요 왜그런 걸까요?

버튼을 클릭시 뷰는 뷰는 LinearLayout 속에 이미지뷰가 추가 되 도록 하고 싶습니다.

첫번째 단락의 소스는 정삭적으로 추가가 되지만, 제가 하고 싶은 저

ImageView iv=(ImageView)findViewById(R.id.imageView1); 소스 가지고는 되지를 않네여.. 어떻게 하면  될까요/

 

참고로

 

 ImageView iv = new ImageView(this);
iv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
iv.setBackgroundResource(R.drawable.te1);
layout.addView(iv, new LayoutParams(LayoutParams.ma, LayoutParams.WRAP_CONTENT));

소스는 배경 이미지가 추가만 되지 이것을 뷰로 볼 수가 있을까요?
ldrbabo (220 포인트) 님이 2013년 8월 21일 질문

1개의 답변

0 추천
에러가 뜨는 부분은 해당 액티비티가 연결되어 있는 Layout XML 안에 imageView1 라는 ID를 가진 ImageView가 없어서 그런것 아닌가요?

 

배경이미지만 추가하실 거면, Layout에서 둘러싼 레이아웃에 background속성을 통해 배경화면만 지정하고 필요하지않은 id는 지정하지 않는 게 구조상 좋습니다.

 

코드에서 굳이 추가를 해야되고, 배경만 바뀌는 것이라면 iv라고 생성하지 않고 findViewById(R.id.imageView1).setBackground로 써서 길이를 줄일 수도 있습니다.
ShakeJ (6,320 포인트) 님이 2013년 8월 21일 답변
...