구현을 위한 이전글
Gradle 세팅
apply plugin: 'kotlin-kapt'
android {
...
buildFeatures{
dataBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// For Kotlin projects
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies{
...
def lifecycle_version = "2.2.0"
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.activity:activity-ktx:1.1.0"
}
MainViewModel.kt
class MainViewModel():ViewModel(){
// LiveData
// 값이 변경되는 경우 MutableLiveData로 선언한다.
var count = MutableLiveData<Int>()
init {
count.value = 0
}
fun increase(){
count.value = count.value?.plus(1)
}
fun decrease(){
count.value = count.value?.minus(1)
}
}
- ViewModel안에 LiveData가 있는 모습
- LiveData 객체의 값이 변경될 경우에는 MutableLiveData()으로 선언
- increase(), decrease() 함수를 선언 해 각각 값이 증가/감소하는 역할의 함수
<com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fab_plus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="@{()->viewModel.increase()}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:srcCompat="@drawable/ic_baseline_exposure_plus_1_24" />
'Android > Jetpack' 카테고리의 다른 글
Android Studio에서 Proto DataStore 설정하는 방법 (gradle kotlin) (0) | 2024.11.07 |
---|---|
Preference DataStore와 Proto DataStore의 차이 (0) | 2024.11.05 |
[Android/Jetpack]LiveData (0) | 2023.02.24 |
[Android/Jetpack]Databinding 사용하기 (0) | 2023.02.24 |