android binding adapter
https://youtu.be/I5UCCBOwGG8?t=1060
loadimage 가 연결고리가 된다.
.
.
.
.
codelab example
https://codelabs.developers.google.com/codelabs/kotlin-android-training-diffutil-databinding/index.html?index=..%2F..android-kotlin-fundamentals#6
package com.example.android.trackmysleepquality.sleeptracker import android.widget.ImageView import android.widget.TextView import androidx.databinding.BindingAdapter import com.example.android.trackmysleepquality.R import com.example.android.trackmysleepquality.convertDurationToFormatted import com.example.android.trackmysleepquality.convertNumericQualityToString import com.example.android.trackmysleepquality.database.SleepNight @BindingAdapter("sleepDurationFormatted") fun TextView.setSleepDurationFormatted(item: SleepNight) { text = convertDurationToFormatted(item.startTimeMilli, item.endTimeMilli, context.resources) } @BindingAdapter("sleepQualityString") fun TextView.setSleepQualityString(item: SleepNight) { text = convertNumericQualityToString(item.sleepQuality, context.resources) } @BindingAdapter("sleepImage") fun ImageView.setSleepImage(item: SleepNight) { setImageResource(when (item.sleepQuality) { 0 -> R.drawable.ic_sleep_0 1 -> R.drawable.ic_sleep_1 2 -> R.drawable.ic_sleep_2 3 -> R.drawable.ic_sleep_3 4 -> R.drawable.ic_sleep_4 5 -> R.drawable.ic_sleep_5 else -> R.drawable.ic_sleep_active }) }
<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"> <data> <variable name="sleep" type="com.example.android.trackmysleepquality.database.SleepNight"/> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/quality_image" android:layout_width="@dimen/icon_size" android:layout_height="60dp" android:layout_marginStart="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:srcCompat="@drawable/ic_sleep_5" app:sleepImage="@{sleep}"/> <TextView android:id="@+id/sleep_length" android:layout_width="0dp" android:layout_height="20dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/quality_image" app:layout_constraintTop_toTopOf="@+id/quality_image" tools:text="Wednesday" app:sleepDurationFormatted="@{sleep}"/> <TextView android:id="@+id/quality_string" android:layout_width="0dp" android:layout_height="20dp" android:layout_marginTop="8dp" app:layout_constraintEnd_toEndOf="@+id/sleep_length" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="@+id/sleep_length" app:layout_constraintTop_toBottomOf="@+id/sleep_length" tools:text="Excellent!!!" app:sleepQualityString="@{sleep}"/> </androidx.constraintlayout.widget.ConstraintLayout> </layout>









