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 1 - simple example EditText 본문

android/kotlin

[android]data binding 1 - simple example EditText

pearlab 2023. 6. 1. 16:54

simple data binding

https://developer.android.com/jetpack/androidx/releases/databinding

 

gradle

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

 

Activity

//connect activity & binding & viewmodel

    class NameActivity : AppCompatActivity() {
    private val viewModel: ViewModel by viewModels()

//auto generate ActivityNameBinding
    private lateinit var binding : ActivityNameBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = DataBindingUtil.setContentView(this, R.layout.activity_name)
        binding.viewmodel = viewModel
        binding.lifecycleOwner = this
    }

 

 

ViewModel

class ViewModel() : ViewModel() {

 

//If want update view data then use LiveData

 

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

 

layout

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

<androidx.constraintlayout.widget.ConstraintLayout
...

//simple '{data}'

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