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

버튼 동적 생성 후 onClick 이벤트 처리 문제

0 추천

아래와 같이 코딩을 하엿는데용...  클릭하면 TextView에 text가 아래 설정처럼 변하는 단순한 

처리를 하려고 하는데  if문을 쓰니 아래처럼 btn이 변수로 사용이 안되네요..

어떻게 처리를 하면되나요?

금오공대 (140 포인트) 님이 2013년 11월 26일 질문

3개의 답변

0 추천
getId를 쓸이유가 없는데여 왜 쓰시는지;;
건방진프로그래머 (26,630 포인트) 님이 2013년 11월 26일 답변
0 추천
이클립스에서 빨간 줄이나 노란 줄 나오면 마우스 커서를 갖다대보세요

간단한 설명과 함께 해결책을 추천해줍니다.
희노락 (580 포인트) 님이 2013년 11월 26일 답변
0 추천
건방진프로그래머님 말대로 저 상황에서는 getId를 사용할 이유가 없습니다.

해당 button 객체에만 리스너를 달아줬기 때문에 해당 리스너로 이벤트가 들어오면

무조건 저 button 객체를 통해서 이벤트가 들어온것이죠.

 

getId를 사용하여 클릭된 뷰를 구별 하는 이유는

여러 뷰에 1개의 클릭 리스너를 공통으로 사용하는 경우

어느 뷰가 클릭 되었는지를 알기 위해서 사용하는 것 입니다.

 

그러니 if문 자체가 필요없겠죠.

하나 조언을 하자면 btn 변수는 onCreate 메소드 안에서만 사용되는 로컬 변수입니다.

클릭리스너에서 onCreate 안에서만 사용되는 로컬 변수에 접근할 수 없습니다.

그래서 컴파일 에러가 나는 것이죠.

btn을 멤버변수로 변경하거너 final을 붙여서 해결 할 수 있습니다.
원조안드로이드 (58,190 포인트) 님이 2013년 11월 26일 답변
그럼 리스너 안에서 어떤코딩을해야 하죠?
if문 안에 있는 setText하는 줄만 남겨놓으시면 됩니다. ㅋ
...