MenuInflater: ссылка на документ
Этот класс используется для создания экземпляров XML-файлов меню в объектах Menu.
По соображениям производительности, инфляция меню сильно зависит от
предварительная обработка файлов XML, которая выполняется во время сборки. Следовательно, это
в настоящее время невозможно использовать MenuInflater с XmlPullParser
поверх простого XML-файла во время выполнения; это работает только с XmlPullParser
возвращается из скомпилированного ресурса (R. что-то из файла.)
Что означает первая строка в простых словах, так это то, что вы можете динамически добавлять / раздувать Меню, используя файлы XML.
ПРИМЕР раздувания контекстного меню:
style.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/cut"
android:title="Cut"
app:showAsAction="always" />
<item android:id="@+id/copy"
android:title="Copy"
app:showAsAction="always" />
<item android:id="@+id/paste"
android:title="Paste"
app:showAsAction="always" />
</menu>
Код деятельности (Kotlin):
override fun onCreateContextMenu(menu: ContextMenu, v: View, menuInfo: ContextMenu.ContextMenuInfo) {
super.onCreateContextMenu(menu, v, menuInfo)
val menuInflater = this.activity!!.menuInflater
menuInflater.inflate(R.menu.style, menu)
}
Результат: