728x90
Android에서 Listener를 등록하는 방법입니다.
예제는 ClickListener를 통해 작성했습니다.
1. 익명 객체 전달(lambda)
class MainActivity : AppCompatActivity() {
private val TAG = MainActivity::class.simpleName
private lateinit var btn : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn = findViewById(R.id.mbutton)
btn.setOnClickListener {
Log.d(TAG, "CLICK")
}
}
}
2. OnclickListener 인터페이스 구현
class MainActivity : AppCompatActivity(), View.OnClickListener {
private val TAG = MainActivity::class.simpleName
private lateinit var btn : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn = findViewById(R.id.mbutton)
btn.setOnClickListener(this)
}
override fun onClick(v: View?) {
when(v?.id){
R.id.mbutton -> {
Log.d(TAG, "CLICK")
}
}
}
}
3. Listener 객체 전달
class MainActivity : AppCompatActivity() {
private val TAG = MainActivity::class.simpleName
private lateinit var btn : Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn = findViewById(R.id.mbutton)
btn.setOnClickListener(mClickListener)
}
val mClickListener : View.OnClickListener = object : View.OnClickListener{
override fun onClick(v: View?) {
Log.d(TAG, "CLICK")
}
}
}
'Android' 카테고리의 다른 글
[Android] Intent (명시적, 암시적) (0) | 2021.04.16 |
---|---|
[Android] Activity 생명주기 (0) | 2021.04.09 |
FCM (Firebase Cloud Messaging) (0) | 2021.04.03 |
Kakao Map API (카카오 지도 API) (0) | 2021.03.29 |
Extension functions(확장 함수) (0) | 2021.03.28 |