07-02 03:26
Notice
Recent Posts
Recent Comments
07-02 03:26
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

pear

[android]data binding 2 - BindingAdapter example EditText 본문

android/kotlin

[android]data binding 2 - BindingAdapter example EditText

pearlab 2023. 6. 1. 16:51

databinding send view & BindingAdapter

 

ViewModel

class ViewModel() : ViewModel() {

 

//If want update view data then use LiveData

 

//EditText support String simple
    private val _text = MutableLiveData(String)
    val data: LiveData = _text

 

//EditText not support Int Type need BindingAdapter

    private val _num = MutableLiveData(String)
    val num: LiveData = _num

 

 

layout

    <data>
        <variable
            name="viewmodel"
            type="com.test.name.ViewModel" />
    </data>

<androidx.constraintlayout.widget.ConstraintLayout
...

//simple '{data}'

                    <EditText
                        android:text='@{viewmodel.text}'
                    />

//need BindingAdapter Int

                    <EditText
                        android:text='@{viewmodel.num}'
                    />

 

 

BindingAdapter

object EditTextDataBindingAdapter{

//EditText Int Type BindingAdapter

//need to static
    @JvmStatic

//binding target "android:text"

    @BindingAdapter("android:text")

// function name is user define

    fun setText(view: TextView, text: Int)

   {
        view.text = text.toString()
    }

}

 

 

[android]data binding 3 - Two-way data binding & BindingAdapter example EditText