dataBinding {
enabled = true
}
package com.example.databinding
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.example.databinding.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this,R.layout.activity_main)
val user : User = User("park","eunji")
binding.user=user
}
}
package com.example.databinding
class User {
var firstName:String
var lastName:String
constructor(firstName:String, lastName:String){
this.firstName=firstName
this.lastName=lastName
}
}
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="<http://schemas.android.com/apk/res/android>">
<data>
<variable
name="user"
type="com.example.databinding.User" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/firstname_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName, default=defaults}" />
<TextView
android:id="@+id/lastname_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName, default=defaults}" />
</LinearLayout>
</layout>
결과물
메인액티비티.kt에서
binding.firstname_textView.setText=user.firstName
binding.lastname_textView.setText=user.lastName
해줘야 하는 것을 xml에 작성함으로써 액티비티 소스코드가 깔끔해졌다.