Showing posts with label 【ANDROID STUDIO】ViewModel Data Binding. Show all posts
Showing posts with label 【ANDROID STUDIO】ViewModel Data Binding. Show all posts

Monday, May 17, 2021

【ANDROID STUDIO】ViewModel Data Binding

 package com.example.viewmodel


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.ViewModelProvider
import com.example.viewmodel.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var viewModel: MainActivityViewModel
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
viewModel = ViewModelProvider(this).get(MainActivityViewModel::class.java)
binding.resultTextView.text = viewModel.getTotal().toString()

binding.insertButton.setOnClickListener {
viewModel.setTotal(binding.inputEditText.text.toString().toInt())
binding.resultTextView.text = viewModel.getTotal().toString()

}

}
}
package com.example.viewmodel

import androidx.lifecycle.ViewModel

class MainActivityViewModel : ViewModel() {
private var total = 0

fun getTotal(): Int {
return total
}

fun setTotal(input: Int) {
total += input
}
}

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<EditText android:id="@+id/input_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:textSize="36sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.323"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.064" />

<Button android:id="@+id/insert_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="50dp"
android:layout_marginTop="40dp"
android:text="Add"
android:textSize="36sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/input_edit_text"
android:layout_marginLeft="50dp" />

<TextView
android:id="@+id/result_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="45dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="41dp"
android:textSize="36sp"
app:layout_constraintEnd_toEndOf="@+id/insert_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/insert_button"
android:layout_marginRight="41dp"
android:layout_marginLeft="45dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>