brunch

빠르게 배우는 안드로이드 -7 ClickEvent-4

클릭이벤트를 만드는 3가지방법

by 윤형도



위 강의에 이어서 진행합니다.

지난 시간까지의 코드를 통해서
View.OnClickListener mClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {

}};
위와 같은 ClickListener코드를 만들고 이벤트를 적용할 View에
display_textView.setOnClickListener(mClickListener);
setOnClickListener를 적용함으로써 이벤트를 구현할수있었습니다.

이것이 첫번째 클릭이벤트 구현방법입니다. 오늘은 추가적으로 2가지 방법을 더 학습해보도록합시다. 저희가 처음 배운 클릭이벤트 구현방법이 가장 어려운 방법이고 나머지 2가지 방법은 더 쉽습니다.

2.Annoymous class(익명 클래스)를 통한 클릭이벤트

우선 Annoymous class(익명 클래스)를 통한 클릭이벤트 구현방법을 알아보도록 합시다.

쉽게 생각하면

View.OnClickListener mClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {

}};

이 코드에서 View.OnClickListener mClickListener = 이부분을 제거한 것과
display_textView.setOnClickListener()을 더해서 사용하는 방법입니다.
display_textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

}});
다음과 같이 하는것이 익명클래스를 이용한 방법입니다. 앞에 View.OnClickListener mClickListener 이 부분을 제거하였기때문에 display_textview 말고는 이 onClickListener를 재 사용할수있는 방법이 없습니다. 따라서 onClickListener가 할당된 변수가 없으므로 이를 익명클래스라고 합니다. v.getId()등으로 구분할필요가없거나 간단하게 클릭이벤트를 구현하고싶을때 주로 사용하는 방법입니다.

3.Implements를 이용한 클릭이벤트

선언된 클래스 자리에 implements를 통해서 onClickListener를 상속받는 방법입니다.

1*Kk6K6uCXPhmGo1V0aHpIMw.png

위와같이 implements라는 코드를 추가하고 View 를 타이핑후 .을 누르면 다음과같은 자동완성이 생기는 것을 볼수있습니다. 여기서 onClickListener를 선택하면

1*0vTnOl6gBtCoo2VHgEQfIA.png

다음과 같이 빨간색 밑줄이 있는것을 볼수있습니다. 이것은 Interface를 implements를 해놓고 override를 해야하는것들이 아직 override되어있지 않다는것을 Studio에서 알려주는 것입니다.

밑줄부분에 마우스를 클릭후 alt+ insert키 를 누르고

1*lUr6sApUKoh1s5vBcE1eIA.png

Implement Methods를 선택하거나

1*9B9HK5bCLbBn7wbe8izqEA.png

메뉴의 Code -> Implement Methods를 선택하면

1*F9wL-lInicIdBRo5ZK4Alw.png

다음과 같은 화면이 나옵니다. 여기있는 onClick을 선택후 Ok버튼을 누르면됩니다.

1*doDAbdEyqEhOKR16Tl26Qg.png

다음과 같이 onClick이라는 메소드가 Override된것을 볼수있습니다.

이제 이 onClick을 view에 연결해주어야 합니다.

이벤트를 발생시킬 View.setOnclickListener(사용중인 Activity클래스이름.this) 와 같은 방법으로 사용합니다.

ex)

display_textView.setOnClickListener(MainActivity.this);

이러한 방법으로 하면 onClickListener를 동작시킬수 있습니다.

위의 3가지 방법을 응용하여 다양한 이벤트를 동작시킬수 있습니다.

keyword
매거진의 이전글빠르게 배우는 안드로이드-6 ClickEvent-3