Android
AndroidProgramming - Listener 등록 (Kotlin)
DevGoni
2021. 4. 8. 20:18
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")
}
}
}