Hanbit the Developer
[Kotlin] Call a Method in MainActivity.kt from another class 본문
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에 전달하면 된다.
'Android' 카테고리의 다른 글
Check If Permissions is granted or denied And Request Permissions in Android (0) | 2021.05.20 |
---|---|
MapViewLocationManager: init failed 오류에 대한 해결책 두 가지 (0) | 2021.05.17 |
[build.gradle] I can't found libraries/modules after implements (0) | 2021.03.05 |
[Kotlin] Thread/Handler/Looper (0) | 2021.02.28 |
[Kotlin] ListViewAdapter().notifyDataSetChanged() doesn't work. (0) | 2021.02.28 |