[kotlin] 코틀린 데이터 바인딩을 사용하여 텍스트뷰에 동적으로 데이터를 설정하는 방법
1. 데이터 바인딩 레이아웃 설정하기
우선, 데이터 바인딩이 적용된 레이아웃 파일을 작성합니다. TextView에 동적으로 데이터를 설정하기 위해 다음과 같이 레이아웃 파일을 작성합니다.
<!-- activity_main.xml -->
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="com.example.ViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewModel.dynamicText}" />
</LinearLayout>
</layout>
2. ViewModel에서 데이터 설정하기
데이터를 설정할 ViewModel 클래스를 다음과 같이 작성합니다.
// ViewModel.kt
import androidx.databinding.BaseObservable
import androidx.databinding.Bindable
class ViewModel : BaseObservable() {
@get:Bindable
var dynamicText: String = ""
set(value) {
field = value
notifyPropertyChanged(BR.dynamicText)
}
}
3. 액티비티에서 데이터 설정하기
마지막으로, 액티비티에서 데이터를 설정합니다.
// MainActivity.kt
import androidx.databinding.DataBindingUtil
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
val viewModel = ViewModel()
viewModel.dynamicText = "동적으로 설정된 데이터"
binding.viewModel = viewModel
}
}
이제, ViewModel 클래스의 dynamicText 속성을 변경하면 해당 변경 내용이 텍스트뷰에 반영됩니다. 데이터 바인딩을 사용하여 동적으로 데이터를 설정하는 방법을 살펴보았습니다.