Skip to content

Instantly share code, notes, and snippets.

@SeongUgJung
Last active August 22, 2018 03:12
Show Gist options
  • Save SeongUgJung/74d286009547ee5041b0e5d8921d7add to your computer and use it in GitHub Desktop.
Save SeongUgJung/74d286009547ee5041b0e5d8921d7add to your computer and use it in GitHub Desktop.
mvvm databinding
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 데이터바인딩 정의 -->
<data>
<variable
name="vm"
type="MainViewModel" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/et_lottie_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{vm.name}"
android:onClick="@{(() -> vm.nameClick()}" />
</FrameLayout>
</layout>
class MainActivity : Activity() {
fun onCreate() {
val tv : TextView = findViewById(R.id.tv)
// ViewModel 정의
val viewModel = MainViewModel()
// View-ViewModel 바인딩
dataBinding.setVariable(BR.vm, viewModel)
}
}
class MainViewModel {
// databinding 을 통해 view 와 연결
val name = ObservableField("")
init {
name.set(initName())
}
private fun initName() : String = "John"
// databinding 을 통해 view 와 연결
fun nameClick() = name.set("Click!!")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment