#android #kotlin
Вопрос:
Я слежу за этим обучающим видео
В activity.xml Я создал панель инструментов с именем идентификатора
<androidx.appcompat.widget.Toolbar
android:id="@ id/toolbar_excerise_activity"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize">
Затем в MainActivity.kt в методе on create они просто называют имя id без определения переменной. Как это делается?
class ExceriseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_excerise)
setSupportActionBar(**toolbar_exercise_activity**)
}
}
Поэтому некоторые из них просто назвали имя идентификатора toolbar_excerise_activity, не указывая переменную. Как это делается
Комментарии:
1. Это возможность, предоставляемая компанией
kotlin-android-extensions
. Это плагин для компилятора, но сейчас он устарел. Вы можете выполнить поиск в Интернете, чтобы узнать об этом.
Ответ №1:
Я бы предложил использовать привязку представления для этого. https://developer.android.com/topic/libraries/view-binding#activities
private lateinit var binding: ActivityExceriseBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityExceriseBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
setSupportActionBar(binding.toolBar)
}
привязка представления создаст класс привязки для всех ваших xml-макетов.
Имя класса привязки зависит от имени файла, например:
my_layout.xml
приведет к созданию MyLayoutBinding
класса.
Также в xml все, что имеет идентификатор, будет существовать в классе привязки.
Привязка будет содержать верблюжьи версии имен идентификаторов в xml.
значение @ id/my_id
создаст myId
переменную в классе привязки