안드로이드에서의 이벤트 중 가장 간단한 OnClickListener에 대해 알아보고자 한다.
OnClickListener는 뜻 그대로 View를 클릭했을 때 발생하는 이벤트이다.
우리는 앱과의 상호작용에서 버튼을 클릭하거나, 길게 누르거나 스크롤을 조작하는 등의 활동을 한다.
이 때 안드로이드에서는 해당 상호작용에 대한 이벤트를 Callback한다. 이벤트가 발생할 때 처리할 로직을 작성하는 부분이 바로 각 Listener들이다.
1. OnClickListener
먼저 간단한 OnClickListener에 대해 알아볼 것이다. 기능은 명칭 그대로 View를 클릭했을 때 작동하는 인터페이스로 대상 View에 리스너를 설정하여 사용이 가능하다.
OnClickListener는 View에 정의된 인터페이스로 아래와 같이 정의되어 있다.
public class View implements Callback, android.view.KeyEvent.Callback, AccessibilityEventSource {
...
public interface OnClickListener {
void onClick(View var1);
}
...
}
그리고 View에 OnClickListener를 설정해줄 경우 setOnClickListener() 메서드를 통해 설정해주면 된다.
public void setOnClickListener(@Nullable View.OnClickListener l)
아래는 사용 예시이다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.tv_hello_world)
findViewById<Button>(R.id.btn_click_ex).run {
setOnClickListener { view ->
//TODO 클릭 이벤트 발생 시 처리 로직 작성
}
}
}
}
2. OnLongClickListener
OnLongClickListener는 View를 길게 누를 때 작동하는 인터페이스로 해당 View에 설정하여 사용하면 된다.
public class View implements Callback, android.view.KeyEvent.Callback, AccessibilityEventSource {
...
public interface OnLongClickListener {
boolean onLongClick(View var1);
}
...
}
public void setOnLongClickListener(@Nullable View.OnLongClickListener l)
아래는 사용예시이다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.tv_hello_world)
findViewById<Button>(R.id.btn_click_ex).run {
setOnLongClickListener { view ->
//TODO 롱클릭(길게 누름) 이벤트 발생 시 처리 로직 작성
}
}
}
}
'안드로이드 > Guide' 카테고리의 다른 글
안드로이드 개발 - (9) PendingIntent의 활용 (0) | 2020.04.16 |
---|---|
안드로이드 개발 - (7) View, ViewGroup, Inflation의 개념 (0) | 2020.04.09 |
안드로이드 개발 - (6) Android Component: Content Providers (0) | 2020.03.06 |
안드로이드 개발 - (5) Android Component: Broadcast Receiver (0) | 2020.03.05 |
안드로이드 개발 - (4) Android Component: Service (0) | 2020.03.04 |