如何知道在动作模式下按下后退箭头的时间

时间:2018-12-19 02:52:13

标签: android android-actionmode

我有一个动作模式栏,其中有一个箭头按钮和一个删除图标。 参见下面的图片enter image description here

我试图在按下代码但无法识别时按下代码。我有以下代码

   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(在动作模式栏上按下backarrow)的操作

  2. 如果您注意到,默认情况下,动作模式栏为黑色,带有红色阴影线。如何更改动作模式栏和红线的颜色?

  3. 与问题2相关的
  4. 我可以在动作模式栏上进行不同颜色的不同活动,还是对我的所有活动限制为一种颜色?如果是,如何?

1 个答案:

答案 0 :(得分: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));
}