버튼을 클릭하면, 동작하는 코드를 작성하는 방법
setOnClickListener() 함수와, 이 함수의 파라미터인 View.OnClickListener의 onClick 함수
각종 위젯을 클릭하거나, 텍스트를 입력하거나, 드래그 하는등의 UI에 적용되는 사용자의 반응을 ‘이벤트’라고 한다.
흔히 GUI 프로그래밍에서 만날 수 있는 단어인데, 이러한 이벤트 처리는 Listener라고 불리우는 여러 클래스들이 담당한다.
리스너는 말그대로 듣고 있는 녀석이다. 리스너 내의 메서드를 구현해 놓으면 특정 이벤트를 계속 듣고 있다가 이벤트가 발생하는 시점에 메서드를 호출해준다. 죽, 리스너의 역할은 버튼을 클릭했을 때 내부의 코드(괄호 안)를 동작시킨다다.
OnClick메서드는 OnClickListener interface에 정의되어 있는 메서드이다.
그중에 View에 있는 OnClickListener을 알아볼 것이다. OnClickListener에 있는 OnClick메서드를 구현하는 4가지 방법있다..
방법4가지
1. OnClickListener interface를 implements 하여 메서드를 구현
2. View의 인자에 바로 Listener을 구현
3. clickListener을 별도의 객체로 생성하여 set하는 방법
4. xml에서 메서드를 선언하고 구현하는 방법
이중에서 가장 많이 쓰이는 2번만 다룰것이다. 2번의 구현방법은 구현 이벤트의 수가 적을 경우, 그리고 리스너를 재사용하지 않을경우 많이 사용하게 된다.
레이아웃에 있는 위잿과 findViewbyId로 바인딩을 완료한 상태라면, 버튼의 id에 리스너(Listener)를 설정한다.
반드시 해당 위젯은 객체 생성이 되어있어야한다.
Button button = findViewById(R.id.button) button.setOnClickListener(); |
View.OnClickListener
- View 클래스 내부 인터페이스
- 버튼을 클릭 or 화면 전체(레이아웃)클릭 등의 View를 클릭할 때 처리할 이벤트를 담당하는 리스너
- 리스너를 사용할 때 반드시 onClick() 메소드를 재 정의해야함.
Button button = findViewById(R.id.button) button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this, AddActivity.class); startActivity(intent); } }); |
setOnClickListener의 괄호 안에 new View.OnClickListener를 작성하면 오버라이딩이 자동완성된다. 오버라이딩 된 onClick() 메서드 안에다가 버튼을 클릭하면 발생하는 이벤트를 작성하면 된다.
'FrontEnd > Android 기초' 카테고리의 다른 글
[Android] 리니어레이아웃 (LinearLayout) (0) | 2022.07.16 |
---|---|
[Android] TextView /PlainText(EditText) Button의 속성 (0) | 2022.07.16 |
[Android] 오픈소스 라이브러리 적용 (0) | 2022.07.16 |
[Android] 에뮬레이터 생성 (0) | 2022.07.12 |
[Android] 안드로이드 스튜디오 설치, SDK 기본 설정 , 프로젝트뷰(Android뷰, Project뷰) 구조 이해하기 (0) | 2022.07.12 |