Android
[Kotlin] Call a Method in MainActivity.kt from another class
hanbikan
2021. 2. 28. 21:49
MainActivity.kt
public interface InterfaceMainActivity{
fun myFun()
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myClass = MyClass()
myClass.interfaceMainActivity = object: InterfaceMainActivity{
override fun myFun(){
//TODO: Write Your Code!
}
}
}
}
MyClass.kt
class MyClass{
public lateinit var interfaceMainActivity:InterfaceMainActivity
fun youCanUseItLikeThis(){
this.interfaceMainActivity.myFun()
}
}
앱을 만들다보면 MainActivity의 메서드들이 필요할 때가 정말 많은데(예를 들면, runOnUiThread나 Toast), 이를 위한 해결방안이다.
MainActivity에 interface를 하나 만들고, 그 안에 임의의 함수를 만든다. 이것을 자기 입맛대로 함수를 override한 인터페이스 object를 myClass에 전달하면 된다.