Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample
- import android.arch.lifecycle.MutableLiveData
- import android.os.Bundle
- import android.support.v7.app.AppCompatActivity
- import android.view.View
- import android.widget.Toast
- import com.devindi.wallpaper.R
- interface CounterView {
- fun setCounterValue(value: Int)
- }
- class CounterActivityMvp : AppCompatActivity(), CounterView {
- val presenter = CounterPresenter()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- presenter.view = this
- val view = View(this)
- view.id = R.id.increment
- setContentView(view)
- view.setOnClickListener{ presenter.increment() }
- }
- override fun setCounterValue(value: Int) {
- Toast.makeText(this, "Counter: $value", Toast.LENGTH_SHORT).show()
- }
- override fun onDestroy() {
- super.onDestroy()
- presenter.view = null
- }
- }
- class CounterPresenter {
- val model = CounterRepository()
- var view: CounterView? = null
- init {
- model.counter.observeForever { t -> view?.setCounterValue(t!!) }
- }
- fun increment() {
- model.increment()
- }
- }
- class CounterRepository {
- val counter = MutableLiveData<Int>()
- init {
- counter.value = 0
- }
- fun increment() {
- counter.value = counter.value!! + 1
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement