Код Котлина для программного доступа к панели инструментов OptionsMenu и изменения текста / значка, ..:
1-У нас есть пункт меню в файле пунктов меню, например: menu.xml, пример кода для этого:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/balance"
android:title="0"
android:orderInCategory="100"
app:showAsAction="always" />
</menu>
2 - Определить переменную для доступа к объекту меню в классе:
var menu: Menu? = null
3 - инициализировать его в onCreateOptionsMenu:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.main, menu)
this.menu = menu
return true
}
4- Доступ к пунктам меню внутри вашего кода или развлечения:
private fun initialBalanceMenuItemOnToolbar() {
var menuItemBalance = menu?.findItem(R.id.balance)
menuItemBalance?.title = Balance?.toString() ?: 0.toString()
// for change icon : menuWalletBalance?.icon
}