Для меня ничего из этого не было. Пока я не отключил «Мгновенный запуск» до кода «Горячая замена».
Android studio version: 2.3.3 Последняя ( в день ответа )
Android Test Devices: 5.1.1, 6.0.1
Чтобы отключить мгновенный запуск. В студии Android, выберите «Настройки» -> «Мгновенный запуск» в строке поиска -> Снимите флажок «Включить мгновенный запуск до горячего кода обмена ...»
Активность заполняет ActionBar в его методе onCreateOptionsMenu()
.
Вместо использования setcustomview()
просто переопределите onCreateOptionsMenu
следующим образом:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
Если выбрано действие в ActionBar, вызывается метод onOptionsItemSelected()
. Он получает выбранное действие в качестве параметра. На основании этой информации ваш код может решить, что делать, например:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menuitem1:
Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT).show();
break;
case R.id.menuitem2:
Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT).show();
break;
}
return true;
}