Как узнать когда нажата стрелка назад в действии
У меня есть панель действий, которая имеет кнопку со стрелкой и значок удаления. см. рис ниже
я пытаюсь определить в моем коде, когда кнопка arraow нажата, но не в состоянии. у меня есть следующий код
protected ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.item_selected, menu);
context_menu = menu;
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false; // Return false if nothing is done
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Log.d("BACKPRESS", "BACKPRESSD");
return true;
case R.id.menu_action_delete:
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode mode) {
mActionMode = null;
}
};
когда я нажимаю кнопку со стрелкой назад, он не выполняет оператор case в функции onActionItemClicked
case android.R.id.home:
Log.d("BACKPRESS", "BACKPRESSD");
return true;
но вместо этого выполните функцию onDestroyActionMode. я хотел бы знать следующее:
Как я могу написать код, чтобы определить, когда нажата стрелка назад? например, я хочу что-то вроде if (backarrow нажата на панели действий) сделать что-то
если вы заметили, по умолчанию панель действий имеет черный цвет с красной линией тени. Как я могу изменить цвет панели действий и красной линии?
связанный с вопросом 2, могу ли я иметь разные действия с разными цветами для панели режима действий или я ограничен одним цветом для всех моих действий? если да, то как?
1 ответ
Попробуйте этот код ->
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case android.R.id.home:
Intent homeIntent = new Intent(this, HomeActivity.class);
startActivity(homeIntent);
}
return (super.onOptionsItemSelected(menuItem));
}