▩ 버튼 이벤트(event) 처리란? ▩
버튼(button)을 클릭하였을 경우 이벤트가 발생(event) 합니다.
더 쉽게 말해서 버튼을 누르고 화면이 바뀌거나 작은 문구가 화면에 보여짐니다.
이번 포스트에서는 버튼 이벤트 누르고 작은 문구가(토스트) 화면에 뿌려지는 동작을 알아보겠습니다.
버튼이벤트 처리하는 방법에는 3가지 방법이 있습니다.
1. XML파일에 이벤트 처리 메소드로 등록하는 방법입니다.
2. 이벤트를 처리하는 객체를 생성하여 이벤트를 처리하는
방법니다.
3. 뷰 클래스의 이벤트 처리 메소드를 재정의하는 방법입니다.
【 이벤트 처리 객체를 이용하여 이벤트 처리하기
--- 리스너 내부 클래스 】
리스너 객체를 생성하는 세가지 방법을 알아보겠습니다.
리스너 클래스를 내부 클래스로 정의하는 방법입니다.
리스너 클래스를 무명 클래스로 정의하는 방법입니다.
리스너 인터페이스를 액티비티 클래스에 구연하는 방법입니다.
리스너 클래스를 내부 클래스로 정의해서 버튼 이벤트을 작동합니다.
1> ButtonEvent01 file생성합니다. next 누릅니다.
▶버튼 이벤트 버전은 상황따라서 설정이 가능합니다.낮은 버전을 선택합니다.
▶버튼 이벤트 프로젝트에 맞는 화면을 설정하시며 됩니다. 일반적으로 안드로이드
공부할실때에는 빈프로젝트를 선택합니다.
▶버튼 이벤트 프로젝트 파일 생성과장 마지막 화면이 보여지며, finish 선택합니다.
2> res/layout/activity_main.xml 만듭니다
3) 버튼이벤트 내부 클래스코드작성을 합니다.
내부 클래스는 아래의 화면을 보시면 onCreate 상관없이
코드를 작업하신걸 보실수 있습니다.
- 내부 클래스 구연 -
class myinnerClass implements View.onClickListener{
public void onClick(View v){
Toast.makeText(getApplicationContext(),"버튼이 눌려졌습니다",
Toast.LENGTH_SHORT).show();
}
}
내부 클래스 구연을 보시다 시피, 어떤 버튼을 부착을 해도
실행이 가능합니다. 버튼 하나 하나에 이벤트 처리를 다르게
하고 싶으며, 내부 클래스 보다는 버튼 하나하나에 onClickListner
붙여줘야 합니다. 그건 포스트에서 무명클래스 작성해보 겠습니다.
Buton button = (Button)finVivewById(R.id.button);
생성하였습니다.
리고 MyinnerClass butListener = new MyinnerClass();
내부 클래스를 호출하였습니다.
그럼 button.setOnClickListener(butListener); 부착하시면 됩니다.
4> 버튼이벤트을 실행 합니다.
실행결과를 보시면 "버튼이 눌러졌습니다"라고 토글이 뿌려지는 걸 보실수 있습니다. 버튼을 눌려졌을때 결과입니다. 클릭 전 과 클릭 후를 보시면
더 쉽게 이해 하실수 있습니다.
버튼 이벤트는 내부 클래스로 코드를 작업을 하게 될 경우, 버튼을 여러개 만들시 코드를 내부 클래스에서 한번만 코드작업하여 소스가 길어는것을 예방할수 있습니다.
만약 버튼마다 이벤트 기능을 다르게 하고싶으면 내부클래스 코드작업은 적절하지않습니다.
이번 포스팅은 간단한 버튼이벤트 내부클래스 였습니다.