3
我有一個基底活動像這樣具有抽象方法ABC()科特林的Android基方法不叫
abstract class Base: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
Log.i("abc", "onCreate base")
abc()
}
abstract fun abc()
}
MainActiviy延伸基地
class MainActivity : Base() {
override fun abc() {
Log.i("abc", "method called from base")
}
@Inject
lateinit var mainPresenter: MainPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.i("abc", "onCreate")
App.appComponent.plus(MainModule(this)).inject(this)
button.setOnClickListener {
mainPresenter.performToast(editText.text.toString())
}
}
fun showToast(string: String) {
toast(string)
}
}
當運行MainActivity,日誌只顯示「的onCreate」。這意味着來自Base的onCreate沒有被調用。你能告訴我爲什麼不調用基礎方法嗎? 它看起來很傻,但我嘗試和基地被不叫 相同的代碼工作在JAVA
你能編輯我的代碼嗎?我想我是通過super.onCreate()調用它的。 – coinhndp
使用'onCreate(Bundle)'或'onCreate(Bundle,PersistableBundle)',不要同時使用兩者。我不知道你的用途是什麼,所以我不能給你'正確'的答案。 – Kiskae
這解決了一個完全不相關的問題,我使用了「錯誤的」onCreate簽名 –