как узнать, когда нажата стрелка назад в режиме действия

У меня есть панель режима действий с кнопкой со стрелкой и значком удаления. см. рисунок нижевведите здесь описание изображения

Я пытаюсь определить в своем коде, когда нажата кнопка со стрелкой, но не могу. у меня есть следующий код

   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. я хотел бы знать следующее:

  1. как я могу написать код, чтобы определить, когда нажата стрелка назад? например, я хочу что-то вроде if (стрелка назад нажата на панели режима действий) сделать что-то

  2. если вы заметили, по умолчанию панель режима действий черная с красной линией тени. как я могу изменить цвет панели режима действий и красной линии?

  3. Что касается вопроса 2, могу ли я иметь разные действия с разным цветом для панели режима действий или я ограничен одним цветом для всех моих действий? если да, то как?


person yoohoo    schedule 19.12.2018    source источник
comment
Вы уверены, что идентификатор кнопки «Назад» верен?   -  person Jay Dangar    schedule 19.12.2018


Ответы (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));
}
person Jay Dangar    schedule 19.12.2018
comment
спасибо за код, но он не работал. этот код работает, когда у вас есть стрелка назад на панели инструментов, но не на панели режима действий - person yoohoo; 20.12.2018