Android

[안드로이드] 안드로이드스튜디오(Android Studio) 버튼 이벤트(button event), 버튼에 클릭 이벤트 적용하기, 키/터치 이벤트(key, touch event), 안드로이드 예제, 안드로이드 강좌

정보처리마법사 2016. 8. 5. 21:49
반응형

[안드로이드] 안드로이드스튜디오(Android Studio) 버튼 이벤트(button event), 버튼에 클릭 이벤트 적용하기, 키/터치 이벤트(key, touch event),  안드로이드 예제, 안드로이드 강좌

 

참고 : 이미지서명은 제 와이프 블로그 이미지서명입니다. 

 

 

안녕하세요 정보처리마법사입니다.

 

이번 포스팅의 주제는 키, 터치 이벤트에 관한 내용입니다.

원래 키, 터치에 관한 포스팅이 있었는데 실수로 날려버려서 이렇게 재포스팅합니다.

 

 

 

안드로이드에서 발생할 수 있는 이벤트는 크게 두 가지로 분류할 수 있는데 첫째는 키 이벤트이고, 둘째는 터치 이벤트입니다. 일반적으로 뷰에서 발생할 수 있는 이벤트는 android.view.View 클래스에 인터페이스로 선언되어 있습니다. 이 인터페이스에는 안드로이드 시스템에 의해 호출되는 콜백(callback)메소드가 정의되어 있으므로 우리는 이벤트 리스너의 메소드를 구현하기만 하면 원하는 이벤트가 발생하였을 때 적절한 원하는 적절한 처리를 할 수 있습니다.

우선 지금부터 위 이미지와 같이 버튼을 클릭했을 때 에디트텍스트(EditText)의 텍스트를 아래의 텍스트뷰(TextView)에 나타나게 하는 기능을 구현할 예정입니다.

오른쪽의 잔잔한 이상한 글씨들은 신경쓰지 않으셔도 됩니다. VM이 아니라 실제 디바이스(디버깅모드)에서 테스트한 모습을 캡쳐해서 그런 것 입니다.

 

 

버튼을 클릭했을 때 어떤 동작을 하게 만드는 방법에는 세 가지가 있습니다.

첫 번째는 익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법입니다.

 

 

일단 위 두장의 이미지처럼 XML파일에 레이아웃을 설정하였습니다.

 

 

빨간 줄은 객체 아이디를 아직 올바르게 연결을 하지 않아 그런 것이오니 신경쓰지 않으셔도 됩니다.

버튼을 클릭했을 때 발생하는 이벤트 메소드는 onClick()메소드입니다. 또한 이 메소드는 View.OnClickListener 인터페이스에 선언되어 있으므로 이 인터페이스를 구현해서 버튼에 붙여야 합니다. 우선 위 소스코드처럼 View.OnClickListener 인터페이스를 구현하는 코드를 익명 클래스로 작성을 먼저 합니다.

 

메소드 관련 참고 링크 새창으로 열기


 

 

그리고 나서 이렇게 작성한 익명 클래스를 button.setOnClickListener()메소드에 통째로 인자로 넘겨주면 버튼을 클릭했을 때 onClick()메소드 내의 코드가 실행 됩니다.

 

 

애플리케이션을 실행해서 입력하기 버튼을 클릭하면 당연히 위 이미지와 같은 결과가 나옵니다.

 

 

두 번째 방법은 버튼 리스너를 액티비티에서 구현하고 이 리스너를 버튼에 설정하는 방법입니다.

이 방법은 익명 클래스 대신에 액티비티에서 버튼 리스너를 구현하고 이 리스너를 버튼에 설정하는 방법이기 때문에 클래스 선언부에 implements View.OnClickListener를 선언해야 하며 버턴의 setOnClickListener 메소드에서는 현재 객체(즉, 현재 액티비티)를 가리키는 this를 선언해야 합니다. 방식은 다르지만 어차피 애클리케이션을 실행했을 때 결과는 같으므로 결과화면은 생략합니다.

 

 

그리고 마지막 세 번째 방법은 레이아웃 XML파일의 Button 속성에 onClick요소를 추가하는 방법입니다. 이 방법은 버튼 리스너를 구현하는 방식이 아닌 Button에서 제공하는 onClick속성을 사용하는 방법이므로 레이아웃 XML파일의 Button을 위 와 같이 수정을 해야합니다. android:onClick="clickButton"

 

 

그리고 clickButton()메소드를 만들어 (당연히 메소드 이름은 맘대로 하셔도 됩니다) 기능을 구현하고나서 버튼을 클릭하면 위 레이아웃 XML에 을 사용하는 액티비티에 선언되어 있는 clickButton()메소드를 호출합니다.

이 또한 결과는 같으므로 결과화면은 생략합니다.

 

메소드 관련 참고 링크 새창으로 열기

 

요즈음 안드로이드 관련 포스팅을 자주 하는 편이라서 이전의 포스팅을 서식으로 잡아놓지 않고 그냥 틀만 복사해서 컨텐츠를 수정해서 다시 글쓰기 하는 방법으로 포스팅을 하다가 정신이 살짝 나갔었는지 틀을 가지고 사용한다는 것이 그만 이전 글을 수정해서 발행을 해버려서 버튼 클릭 이벤트 관련 오늘의 포스팅이 날아가는 상황이 발생했습니다. 다음부턴 이런 실수를 하지 않게 발행 버튼 누르기 전에 재차 확인을 해야하겠습니다.

 

 

 

이상으로 포스팅을 마칩니다. 감사합니다.


 


 




참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]






Fin.


잘 못 된 정보가 있으면 말씀해주세요~


공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.


 

 

반응형