gpt4 book ai didi

android - 为什么 Moxy 没有初始化 Presenter (Kotlin, Android)

转载 作者:行者123 更新时间:2023-11-29 02:21:10 27 4
gpt4 key购买 nike

我收到 mPresenter 尚未初始化的错误。我不明白为什么?
我在使用 Kotlin 时遇到此错误,但如果我使用 JAVA,一切都很好
这是我的代码

查看

@StateStrategyType(value = AddToEndStrategy::class)
interface IHelloWorldView : MvpView {
fun showMessage(message: Int)
}

主持人

@InjectViewState
class HelloWorldPresenter : MvpPresenter<IHelloWorldView>() {
fun show() = viewState.showMessage(R.string.message)
}

主要 Activity

class MainActivity : MvpAppCompatActivity(), IHelloWorldView {

@InjectPresenter
lateinit var mPresenter: HelloWorldPresenter

lateinit var mText: TextView
lateinit var mButton: Button

override fun showMessage(message: Int) {
mText.setText(message)
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

mText = findViewById(R.id.text)
mButton = findViewById(R.id.button)
mButton.setOnClickListener {
mPresenter.show()
}
}
}

最佳答案

因为你需要像在 JAVA 中那样初始化它 Foo foo = new Foo();

看来你只创建了一个变量

class MainActivity : MvpAppCompatActivity(), IHelloWorldView {

@InjectPresenter
lateinit var mPresenter: HelloWorldPresenter
//initialisation

@ProvidePresenterTag(presenterClass = HelloWorldPresenter::class, type =PresenterType.GLOBAL)
fun providemPresenter() = HelloWorldPresenter()
fun mPresenter() = HelloWorldPresenter()

lateinit var mText: TextView
lateinit var mButton: Button

override fun showMessage(message: Int) {
mText.setText(message)
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

mText = findViewById(R.id.text)
mButton = findViewById(R.id.button)
mButton.setOnClickListener {
mPresenter.show()
}
}
}

关于android - 为什么 Moxy 没有初始化 Presenter (Kotlin, Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55539654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com