Android/Kotlin
[Android][Kotlin] 메서드 파라미터 함수 넣기 : 고차 함수 활용
자판을 두드리다
2022. 9. 20. 17:41
320x100
[상황]
개발 중 메서드 파라미터에 함수를 넣어 호출하고 싶어서
고차 함수를 활용하여 개발한 코드
알고리즘 개발 시 좀 더 폭넓게 생각이 가능하지 않을까 싶다
[참고 플랫폼]
더보기
1. Android Studio Bumblebee | 2021.1.1 Patch 2 | Runtime version: 11.0.11
[코드 1 : MainActivity.kt]
class MainActivity : AppCompatActivity() {
// 고차함수 활용 : 파라미터로 변수를 넣으면서 이벤트 함수 시작
val fEvent: () -> Unit = { fEventStart() }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Button click 이벤트 작성
findViewById<Button>(R.id.btn_v1).setOnClickListener {
fEventAccess(fEvent)
}
}
// Button click 이벤트 작동 시 호출되는 메소드
private fun fEventAccess(fEvent: () -> Unit) {
Log.d("xkseks", "fEventAccess method !!")
fEvent() // 파라미터로 넘긴 고차함수
}
// 파라미터로 넘긴 고차함수의 로직 수행
private fun fEventStart() {
Log.d("xkseks", "fEventStart method !!")
findViewById<TextView>(R.id.tv_v1).text = "fEventSuccess"
}
}
[코드 2 : activity_main.xml]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/btn_v1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="fEvent" />
<TextView
android:id="@+id/tv_v1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="none"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
활용성에 대해서는 상황에 따라 틀리니
특이 사황이 발생할 때 이런 방법 또한 있다고 생각하면 될 것 같다
320x100