Last active
August 22, 2018 03:12
-
-
Save SeongUgJung/74d286009547ee5041b0e5d8921d7add to your computer and use it in GitHub Desktop.
mvvm databinding
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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