[android]data binding 1 - simple example EditText
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}'
/>