项目作者: rodrigosimoesrosa

项目描述 :
Two-way Data-Binding for Kotlin
高级语言: Kotlin
项目地址: git://github.com/rodrigosimoesrosa/kotlin-data-binding.git
创建时间: 2017-09-13T21:55:52Z
项目社区:https://github.com/rodrigosimoesrosa/kotlin-data-binding

开源协议:

下载


Data binding for Kotlin

On this example I used two-way data binding for Android

Sample implementation on XML:

  1. <data>
  2. <variable name="user" type="br.com.kotlin.databinding.data.User"></variable>
  3. </data>
  1. <EditText
  2. android:id="@+id/txtUser"
  3. android:layout_width="0dp"
  4. android:layout_height="wrap_content"
  5. android:layout_marginEnd="16dp"
  6. android:layout_marginStart="16dp"
  7. android:layout_marginTop="16dp"
  8. android:text="@={user.name}"
  9. android:hint="@string/whats_your_name"
  10. app:layout_constraintHorizontal_bias="0.0"
  11. app:layout_constraintLeft_toLeftOf="parent"
  12. app:layout_constraintRight_toRightOf="parent"
  13. app:layout_constraintTop_toTopOf="parent" ></EditText>

Sample implementation on Kotlin object:

```kotlin
class User : BaseObservable(), Serializable {

  1. companion object {
  2. fun build (name:String, nationality: String): User {
  3. val user = User()
  4. user.name = name
  5. user.nationality = nationality
  6. return user
  7. }
  8. }
  9. @Bindable
  10. var name: String = String()
  11. set(value) {
  12. field = value
  13. notifyPropertyChanged(BR.name)
  14. }
  15. get() = field
  16. @Bindable
  17. var nationality: String = String()
  18. set(value) {
  19. field = value
  20. notifyPropertyChanged(BR.nationality)
  21. }
  22. get() = field

}