안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 개발을 하다 질문이 있는데요...
아래 처럼 인텐트로 음. 이미지 뷰의 아이디값을 받아왔습니다.
그리고 이미지뷰가 참조하는 그림을 추출해 다른 곳에 띄우기 위해서 저렇게 getDrawable()로 뽑아서 setImageDrawable을 했는데
실행을 시키면 NullPointerException 오류가 나네요...
ImageView에서 바로 drawable을 추출할수 없는건지.....
밑에 chooseEyes 와 chooseMouth에는 이미지뷰의 id값이 저장되있구요.
제 생각에는 setImageDrawable에서 오류가 나는거 같은데 왜 그런지 잘 모르겠네요.. 답변 주시면 감사하겠습니다!
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.showresult);
eyesPosition = (ImageView) findViewById(R.id.eyes_position);
mouthPosition = (ImageView) findViewById(R.id.mouth_position);
Intent intent = getIntent();
chooseEyes = (ImageView) findViewById(intent.getIntExtra("value_eyes", 0));
chooseMouth = (ImageView) findViewById(intent.getIntExtra("value_mouth", 0));
eyesPosition.setImageDrawable(chooseEyes.getDrawable());
mouthPosition.setImageDrawable(chooseMouth.getDrawable());
}
}
2012.06.03 15:17:58
답변 정말 감사드려요. 말씀해주신거 보고 제대로 참조하는지 확인해봤는데요.
intent로 받아온값은 맞는데 ㄷ저렇게 하니까 chooseEyes하고 chooseMouth가 제대로 참조를 못하더라구요.
showresult.xml말고 다른 xml에 있는 이미지뷰라서 그런건가요? 인플레이트를 해야하는건가요
제가 정말 초보라 귀중한 답변 정말정말 감사드리구요. 가급적 tag를 활용해라는 말씀이 어떤 뜻인지 잘 모르겠습니당 ㅠ
여튼 답변 정말정말 큰 도움이 됬습니다
2012.06.03 15:33:20
(추천:
1 / 0)
아 chooseeyes 가 다른 액티비티에 있는 뷰인가요?
그러면 당연히 안되죠...
findviewbyid 는 당연히 화면내에 있는 액티비티의 뷰를 찾는 메쏘드 입니다 ㅡ,.ㅡ
이런 경우면..이미지뷰에 사용된 이미지의 정보를 별도로 관리해서 적용하셔야할 것 같네요
그러면 당연히 안되죠...
findviewbyid 는 당연히 화면내에 있는 액티비티의 뷰를 찾는 메쏘드 입니다 ㅡ,.ㅡ
이런 경우면..이미지뷰에 사용된 이미지의 정보를 별도로 관리해서 적용하셔야할 것 같네요




이런식으로 뷰를 설정한걸 본적이 없는데..
이런식으로 하는 것보다는 가급적 tag 를 활용하세요