āĻā§āĻāϞāĻŋāύ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋ āĻ āĻŦāĻŽā§āϞā§āϝāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧā§āĻā§, āϝāĻžāϰ āĻŽāĻžāύ⧠āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻā§āĻāϞāĻŋāύ āϏāĻŋāύā§āĻĨā§āĻāĻŋāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāϰ āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧ⧎ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒ āϝāĻĻāĻŋ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻā§āĻāϞāĻŋāύ āϏāĻŋāύā§āĻĨā§āĻāĻŋāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ-āĻ āĻŽāĻžāĻāĻā§āϰā§āĻ āĻāϰāϤ⧠āĻāĻ āĻāĻžāĻāĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻā§āĻāϞāĻŋāύ āϏāĻŋāύā§āĻĨā§āĻāĻŋāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻŽā§āϞāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āϤāĻĨā§āϝā§āϰ āĻāύā§āϝ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻĻā§āĻā§āύāĨ¤
Gradle āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāϰā§āύ
āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻŽāϤā§, āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞ-āĻŦāĻžāĻ-āĻŽāĻĄāĻŋāĻāϞ āĻāĻŋāϤā§āϤāĻŋāϤ⧠āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽāύ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻāύā§āϝ, āĻŽāĻĄāĻŋāĻāϞ-āϏā§āϤāϰā§āϰ build.gradle
āĻĢāĻžāĻāϞ⧠viewBinding
āĻŦāĻŋāϞā§āĻĄ āĻŦāĻŋāĻāϞā§āĻĒāĻāĻŋāĻā§ true
āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻ āĻāϰā§āύ:
āĻā§āϰā§āĻāĻŋ
android { ... buildFeatures { viewBinding true } }
āĻā§āĻāϞāĻŋāύ
android { ... buildFeatures { viewBinding = true } }
āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒāĻāĻŋ Parcelable
āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻā§āĻāϞāĻŋāύ āĻ
ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāĻā§āϏāĻā§āύāĻļāĻžāύāĻā§āϞāĻŋāĻā§ āϏāĻā§āώāĻŽ āĻāϰ⧠āĻāĻŽāύ āϞāĻžāĻāύāĻāĻŋ āϏāϰāĻžāύ:
āĻā§āϰā§āĻāĻŋ
plugins { id 'kotlin-android-extensions' }
āĻā§āĻāϞāĻŋāύ
plugins { kotlin("android.extensions") }
āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāϞ⧠āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āϏāĻā§āώāĻŽ āĻāϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āĻāϰāĻ āĻāĻžāύāϤā§, āϏā§āĻāĻāĻĒ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻĻā§āĻā§āύāĨ¤
āĻāĻĒāĻĄā§āĻ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻāĻŦāĻ āĻāĻŖā§āĻĄ āĻā§āϞāĻžāϏ
āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āϏāĻžāĻĨā§, āĻŽāĻĄāĻŋāĻāϞāĻāĻŋāϤ⧠āĻĨāĻžāĻāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ XML āϞā§āĻāĻāĻ āĻĢāĻžāĻāϞā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻā§āϞāĻžāϏ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻā§āϞāĻžāϏā§āϰ āύāĻžāĻŽ Pascal āĻā§āώā§āϤā§āϰ⧠XML āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ āϝāĻžāϰ āĻļā§āώ⧠Binding āĻļāĻŦā§āĻĻāĻāĻŋ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻĻāĻŋ āϞā§āĻāĻāĻ āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ result_profile.xml
āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻā§āϞāĻžāϏā§āϰ āύāĻžāĻŽ ResultProfileBinding
āĨ¤
āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āϏāĻŋāύā§āĻĨā§āĻāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻŦāĻžāĻāϧāĻžāĻ āĻā§āϞāĻžāϏāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§, āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤāĻā§āϞāĻŋ āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āĻāĻŦāĻ āĻāĻŖā§āĻĄā§āϰ āĻā§āϞāĻžāϏāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ:
kotlinx.android.synthetic
āĻĨā§āĻā§ āϏāĻŽāϏā§āϤ āĻāĻŽāĻĻāĻžāύāĻŋ āϏāϰāĻžāύāĨ¤āĻ ā§āϝāĻžāĻā§āĻāĻŋāĻāĻŋāĻāĻŋ āĻŦāĻž āĻĢā§āϰā§āϝāĻžāĻāĻŽā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āϏā§āĻĢā§āϤ āĻāϰā§āύāĨ¤
- āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§āϰ
onCreate()
āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻŦā§āĻĻā§āϧāĻŋ āĻāϰāϤ⧠āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒāĻā§āϞāĻŋāϤ⧠āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ -āĻāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ⧎ - āĻā§āĻāϰā§āĻā§āϞāĻŋāϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āĻāĻŖā§āĻĄā§āϰ
onCreateView()
āĻĒāĻĻā§āϧāϤāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āϏā§āĻĢā§āϤ āĻāϰāϤ⧠āĻāĻŖā§āĻĄā§ āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ -āĻāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύāĨ¤
- āĻā§āϰāĻŋāϝāĻŧāĻžāĻāϞāĻžāĻĒā§āϰ āĻāύā§āϝ, āĻāĻĒāύāĻžāϰ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒā§āϰ
āϏāĻŋāύā§āĻĨā§āĻāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻā§āϞāĻžāϏ āĻāύāϏā§āĻā§āϝāĻžāύā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āϏāĻŽāϏā§āϤ āĻāĻŋāĻ āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ:
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
āĻāϰāĻ āĻāĻžāύāϤā§, āĻāĻŋāĻ āĻŦāĻžāĻāύā§āĻĄāĻŋāĻ āĻāĻžāĻāĻĄā§āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ āĻĻā§āĻā§āύāĨ¤
{% āĻļāĻŦā§āĻĻāĻžāϰā§āĻĨā§ %}āĻāĻĒāύāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ
- āĻĻā§āϰāώā§āĻāĻŦā§āϝ: āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻŦāύā§āϧ āĻĨāĻžāĻāϞ⧠āϞāĻŋāĻā§āĻ āĻā§āĻā§āϏāĻ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧ
- āĻĻā§āĻā§āύ āĻŦāĻžāĻāϧāĻžāĻ
- āĻĒā§āĻāĻŋāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāĻāĻžāϰāĻāĻŋāĻ
- āĻāĻĒāύāĻžāϰ āĻĒā§āĻāĻŋāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ