【发布时间】:2020-03-06 16:20:41
【问题描述】:
免责声明:这不是 MVP 与 MVVM 的帖子。
我做了一个简单的项目来看看 MVP 是如何工作的
我的活动:
class MainActivity : AppCompatActivity(), MainContract.View {
lateinit var presenter: MainPresenter
private val counter by lazy { findViewById<TextView>(R.id.value_tv) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
presenter = MainPresenter(this)
increment_value_btn.setOnClickListener {
presenter.incrementCount()
}
decrement_value_btn.setOnClickListener {
presenter.decrementCount()
}
}
override fun updateCount(count: Int) {
counter.text = count.toString()
}
}
我的演示者:
class MainPresenter(mainView: View) : Presenter {
var view: View = mainView
var counter: Int = 0
override fun incrementCount() {
counter++
view.updateCount(counter)
}
override fun decrementCount() {
counter--
view.updateCount(counter)
}
}
当配置改变(方向)时,我的号码会被重置。我知道这是一种正常行为,因为活动被删除并重新创建。我读过viewmodel 旨在帮助数据生存。但是我不知道如何用我的演示者来实现它。
【问题讨论】:
标签: android android-mvp