Ограничить / удалить параметр автозаполнения при длительном нажатии на Изменить текст - PullRequest
0 голосов
/ 10 апреля 2019

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

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

if (Build.VERSION.SDK_INT >= 26) {
            AutofillManager autofillManager = cxt.getSystemService(AutofillManager.class);
            if (null != autofillManager) {
                view.setImportantForAutofill(IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
                autofillManager.disableAutofillServices();
                autofillManager.cancel();
            }
        }

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

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете сделать это с помощью пользовательского класса EditText, просто следуя инструкциям ниже:

1) Расширить класс EditText,

2) Переопределить isSuggestionsEnabled() и return false,

3) Создайте метод canPaste() и верните false. Это метод сокрытия.

Если все еще не работает, вы также можете отключить длинный щелчок в EditText.

mEditText.setLongClickable(false);

И отключить отображение контекстных меню, возвращая false из следующих методов:

mEditEext.setCustomSelectionActionModeCallback(new ActionMode.Callback() {

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

            public void onDestroyActionMode(ActionMode mode) {                  
            }

            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                return false;
            }

            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                return false;
            }
        });
...