봄꾸
1k
2019-04-29 23:10:41 작성 2019-04-29 23:11:53 수정됨
1
340

안드로이드 View inflate + 자바 문법 궁금합니다.


위와 같이 작성 햇을때 이벤트가 발생할 때마다 뷰와 이미지를 inflate 하게 되어서

아래와 같이 바꿨는데

처음 클릭 이벤트때는 정상 작동 되다가 두번째 이벤트 부터 앱이 중지되버리네요.

외부 클래스의 필드로 뷰와 이미지뷰 참조변수를 선언 하여서 접근이 가능할텐데

왜 이런 문제가 발생하는걸까요...? onclick 메소드 지역변수나 이벤트 리스너 구현 클래스의 필드로 선언하여 접근하였을 때 가능한건 알고 있지만, 이 방법도 문법적으로 된다고 생각하는데요 ㅠㅠ


0
  • 답변 1

  • Deer Hunter
    328
    2019-05-01 03:01:59

    전체 코드 및 에러 메세지를 모르므로 틀릴 수 있습니다만, 이미 child로 등록되어 있는 view 객체를 다시 등록하려고(setView(view)) 해서 발생한 문제같습니다.

    해결 방법은 첫번째 코드처럼 매번 새로운 객체를 등록하거나, 두번째 코드의 경우 등록전에 해당 view의 parent 존재 여부를 확인한 후 존재할 경우 parent 에서 해당 view를 제거하는 방법이 있을 것 같습니다.

    추가로 덧붙이자면, 언어의 syntax 측면에서 문제 없게 개발되었다고, program이 항상 정상적으로 동작할 것을 기대하기는 어렵습니다.

    해당 program이 구동되는 platform의 특성 및 제반사항을 이해하고 그에 따라 작성이 되어야 안정적인 program 개발이 가능합니다.

  • 로그인을 하시면 답변 을 등록할 수 있습니다.