Как сделать меню панели инструментов Android с Anko DSL прямо в классе пользовательского интерфейса? Не хотите писать слушателей в классе Activity.
Что касается моего ответа, приведенного ниже, есть ли способ избежать XML-файла для описания элементов меню?
В файле AndroidManifest.xml выберите тему без ActionBar
Создайте файл ресурсов XML вашего меню, как обычно:
<menu ...> <item android:id="@+id/action1" android:title="Action1"/> <item android:id="@+id/action2" android:title="Action2"/> </menu>
Для каждого элемента в меню создайте свою собственную активность
Создайте основной класс активности:
class ActivityMain : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ActivityMainUI().setContentView(this) //do not use setActionBar() or setSupportActionBar() } // do not override onOptionsItemSelected() and onCreateOptionsMenu() here } class ActivityMainUi: AnkoComponent<ActivityMain> { override fun createView(ui: AnkoContext<ActivityMain>) = with(ui) { coordinatorLayout { // justify layout appBarLayout { toolbar { // justify your toolbar inflateMenu(R.menu.your_menu_xml_resource) onMenuItemClick { item -> when (item!!.itemId) { R.id.action_1 -> { startActivity<Activity1>() true } R.id.action_2 -> { startActivity<Activity2>() true } else -> false } } }.lparams(width = matchParent, height = wrapContent) }.lparams(width = matchParent, height = wrapContent) // put other views } } }