режим контекстного действия работает только один раз - PullRequest
1 голос
/ 02 апреля 2020

Я сделал контекстный режим действий, и он работает очень хорошо, когда я нажимаю на опции, которые я создал, но проблема в том, что режим действий работает только один раз, и чтобы включить его снова, я должен выйти из приложения и запустить его снова

вот мой код

        Button.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {

                if (actionMode != null) {
                    return false;
                }

                actionMode = startActionMode(startActionMode);
                return true;
            }
        });
    }

    private ActionMode.Callback startActionMode = new ActionMode.Callback() {
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {

            mode.getMenuInflater().inflate(R.menu.menu12, menu);
            mode.setTitle("choose your option");
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {

            switch (item.getItemId()) {
                case R.id.item1:
                    Toast.makeText(MainActivity.this, "item 1 pressed", Toast.LENGTH_SHORT).show();
                    mode.finish();
                    return true;
                case R.id.item2:
                    Toast.makeText(MainActivity.this, "item 2 pressed", Toast.LENGTH_SHORT).show();
                    mode.finish();
                    return true;
                default:
                    return false;

            }
        }

        @Override
        public void onDestroyActionMode(ActionMode mode) {
            startActionMode = null;

        }
    };
}

1 Ответ

1 голос
/ 03 апреля 2020

Просто вместо

startActionMode = null;

используйте

actionMode = null;

...