App노자

[Android] Event listener 본문

Android/AndroidStudio

[Android] Event listener

앱의노예 2023. 6. 23. 22:34

1. Event listener란?


Event Listener란 사용자 인터페이스(UI) 또는 다른 앱 구성 요소에서 발생하는 이벤트(사용자 입력, 버튼 클릭, 화면 터치 등)를 감지하고 처리하는 데 사용되는 메커니즘 또는 단일 콜백 메서드를 포함하는 View 클래스의 인터페이스를 가리킨다 

Event Listener는 앱이 리스너가 등록된 view가 사용자 상호작용으로 인해 UI 내 항목과 함께 트리거 되었을 때 Android 프레임워크에 의해 호출되어 사용자 입력에 대응하는 데 중요한 역할을 한다 

Event Listener 인터페이스에 포함된 콜백 함수는 각자의 인터페이스 안에 단독으로 존재하며, 함수 중 하나를 정의하고 이벤트를 처리하려면 Activity 내에 중첩된 인터페이스를 구현하거나 익명의 클래스로 정의하여 사용한다

 

https://developer.android.com/guide/topics/ui/ui-events?hl=ko#EventListeners 

 

입력 이벤트 개요  |  Android 개발자  |  Android Developers

입력 이벤트 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android에는 사용자와 애플리케이션의 상호작용으로부터 이벤트를 가로채는 방법이 여러 가

developer.android.com

2. onClick()


        var testButton : Button = findViewById(R.id.my_button)

        testButton.setOnClickListener(object :View.OnClickListener {
            override fun onClick(p0: View?) {
                TODO("Not yet implemented")
            }
        })

        testButton.setOnClickListener {

        }

onClick() 함수는 View 클래스와 그 하위 클래스에서 사용되는 이벤트 리스너 중 하나이며

주로 사용자가 해당 뷰를 클릭할 때 발생하는 이벤트를 처리하는 데 사용된다

개발자는 해당 뷰의 onClick() 함수를 재정의하여 클릭 이벤트에 대한 동작을 정의하면 

사용자가 해당 뷰를 클릭할때 시스템은 해당 뷰의 onClick() 메서드를 호출한다

 

https://developer.android.com/reference/android/view/View.OnClickListener

 

View.OnClickListener  |  Android Developers

 

developer.android.com

3. onLongClick()


        var testButton : Button = findViewById(R.id.my_button)
        
        testButton.setOnLongClickListener(object :View.OnLongClickListener {
            override fun onLongClick(p0: View?): Boolean {
                TODO("Not yet implemented")
            }
        })

        testButton.setOnLongClickListener {
            true
        }

 

 

ㄴㄴonLongClick() 메서드는 안드로이드에서 사용자가 뷰를 길게(롱클릭) 클릭할 때 발생하는 이벤트를 처리하는 메서드입니다. 즉, 사용자가 뷰를 일정 시간 동안 길게 누르면 호출되는 메서드입니다. 이를 통해 사용자는 주로 길게 눌렀을 때 특정 동작(예: 컨텍스트 메뉴 표시, 아이템 삭제 등)을 수행할 수 있습니다. onLongClick() 메서드를 사용하려면 다음 단계를 따릅니다: 해당 뷰를 찾거나 생성합니다. 일반적으로 XML 레이아웃 파일에서 뷰를 정의하고 findViewById() 메서드를 사용하여 뷰 객체를 찾습니다. 뷰에 setOnLongClickListener() 메서드를 호출하여 긴 클릭 리스너를 설정합니다. 이 메서드에는 View.OnLongClickListener 인터페이스를 구현한 객체를 전달합니다. onLongClick() 메서드를 구현한 객체 내에서 긴 클릭 이벤트에 대한 동작을 정의합니다.

 

 

 

https://developer.android.com/reference/android/view/View.OnLongClickListener

 

View.OnLongClickListener  |  Android Developers

 

developer.android.com

4. onFocusChange()


        var testEditText: EditText = findViewById(R.id.my_edittext)

        testEditText.setOnFocusChangeListener(object : View.OnFocusChangeListener {
            override fun onFocusChange(v: View?, hasFocus: Boolean) {
                if(hasFocus) {
                    //method
                }
            }
        })

        testEditText.setOnFocusChangeListener { v, hasFocus ->
            if(hasFocus){
                //method
            }
        }

 

 

 

https://developer.android.com/reference/android/view/View.OnFocusChangeListener

 

View.OnFocusChangeListener  |  Android Developers

 

developer.android.com

5. onKey()


하드웨어 키 이벤트가 View로 발송될 때 호출될 콜백에 대해 정의한 인터페이스이다

키 이벤트가 View에 제공되기 전에 콜백이 실행되고 하드웨어 키보드에만 유용합니다

안드로이드 단말 대부분이 소프트웨어 키보드이므로 사용빈도가 떨어지는 인터페이스라고 생각한다

 

https://developer.android.com/reference/android/view/View.OnKeyListener

 

View.OnKeyListener  |  Android Developers

 

developer.android.com

6. onTouch()


        var testEditText: EditText = findViewById(R.id.my_edittext)

        testEditText.setOnFocusChangeListener(object : View.OnFocusChangeListener {
            override fun onFocusChange(v: View?, hasFocus: Boolean) {
                if(hasFocus) {
                    //method
                }
            }
        })

        testEditText.setOnFocusChangeListener { v, hasFocus ->
            if(hasFocus){
                //method
            }
        }

 

 

 

 

7. onCreateContextMenu() 


 

 

 

 

 

 

자세한 설명 및 구현 방법은 아래의 링크에서 확인 가능하다

https://cjh94.tistory.com/37

 

[Android] Context Menu(컨텍스트 메뉴)

Preference는 안드로이드에서 기본적으로 제공해 주는 것으로 간단한 데이터 저장방식이다. Preference는 xml형태로 저장을 한다 람다식 함수란 이름 없이 함수의 역할을 하는 익명 함수이며 주로 고

cjh94.tistory.com

 

'Android > AndroidStudio' 카테고리의 다른 글

[Android] startActivity, startActivityForResult  (0) 2023.06.28
[Android] Event handler  (0) 2023.06.27
[Android] finish, finishAffinity  (0) 2023.06.16
[Android] ObjectAnimator  (1) 2023.06.10
[Android] Property Animation Overview  (0) 2023.06.05