Programing/Android

viewModel, binding을 사용하는 예제

딩코딩 2024. 3. 12. 10:42
class MainActivity : AppCompatActivity() {

    private lateinit var userViewModel: UserViewModel
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // 데이터 바인딩 초기화
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
        
        // ViewModel 초기화
        userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)

        // 데이터 바인딩에 ViewModel 할당
        binding.viewModel = userViewModel

        // LiveData Observer 설정 (데이터 바인딩을 통해 자동 갱신)
        binding.lifecycleOwner = this

        // 버튼 클릭 이벤트
        binding.submitButton.setOnClickListener {
            val userName = binding.userInput.text.toString()

            // ViewModel을 통해 데이터 설정
            userViewModel.setUserName(userName)

            // 다음 화면으로 이동
            startActivity(Intent(this, SecondActivity::class.java))
        }
    }
}