ViewModel + LiveData

sooj·2023년 9월 24일

.code

목록 보기
4/10

♡ MainAcitivity.kt


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider

class MainActivity : AppCompatActivity() {

    private lateinit var viewModel : MainViewModel

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

        viewModel = ViewModelProvider(this).get(MainViewModel::class.java)

        findViewById<Button>(R.id.btnArea).setOnClickListener {
            viewModel.plusLiveDataValue()
        }

        viewModel.testMutableLiveData.observe(this, Observer {
            findViewById<TextView>(R.id.textArea).text = viewModel.testMutableLiveData.value.toString()
        })

    }
}

♡ MainViewModel.kt


package com.example.study

import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel

class MainViewModel : ViewModel() {

    var testMutableLiveData = MutableLiveData(0)

    // MutableLiveData <-> LiveData

    fun plusLiveDataValue(){
        testMutableLiveData.value = testMutableLiveData.value!!.plus(1)
    }

}

♡ activity_main.xml


        <TextView
            android:id="@+id/textArea"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:textSize="60dp" />

        <Button
            android:id="@+id/btnArea"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="btn" />
profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글