apply オブジェクト設定・割当

apply

対象オブジェクトのプロパティを設定・割当する
{ }でプロパティと値を設定する

clark.apply {
    firstName = "Clark"
    lastName = "James"
    age = 18
}

// The equivalent code without apply scope function would look like the following.

clark.firstName = "Clark"
clark.lastName = "James"
clark.age = 18


// フラグメントでのバインドデータの割当
private var binding: FragmentFlavorBinding? = null

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    binding?.apply {
        // fragment_flavor.xmlで定義したviewModelへの紐づけ
        viewModel = sharedViewModel
        // fragment_flavor.xmlで定義したflavorFragmentへの紐づけ
        flavorFragment = this@FlavorFragment
        // 値の変更を監視する
        lifecycleOwner = viewLifecycleOwner
    }
}

トレーニング > KOTLIN を用いた ANDROID の基本 > ナビゲーション > ナビゲーションの発展例 > 共有ビューモデル > 6. データ バインディングで ViewModel を使用する