기술적용
Databinding 구현
131 developer
2022. 3. 21. 11:02
gradle에서 dataBinding true로 설정
android {
...
buildFeatures {
dataBinding true
}
}
Activity
val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this, R.layout.activity_main)
binding.lifecycleOwner = this
//binding.lifecycleOwner = this : 관찰가능한 상태로 변경
binding.viewmodel = viewModel
Fragment
val binding = DataBindingUtil.inflate<CalendarListBinding>(inflater, R.layout.fragment_home, container, false)
MainViewModel 파일
lateinit var todos: LiveData<List<Todo>>
init {
todos = getAll()
}
fun getAll() : LiveData<List<Todo>> {
return db.todoDao().getAll()
}
xml 파일
activity xml 파일 전체를 로 감싸기
<layout>
<data>
<variable
name="viewModel"
type="com.ilsamil.hiweather.kotlin.MainViewModel" />
</data>
...
<TextView
android:text="@{viewModel.todos.toString()}"
/>
</layout>