Я делаю вертикальный EditText для традиционного монгольского. Я успешно реализовал его, введя слегка измененный EditText внутри повернутого ViewGroup. Мне нужно создать полностью настраиваемое контекстное меню, потому что система не поддерживает вертикальный текст и не поворачивается при повороте ViewGroup. Поэтому я хочу полностью отключить контекстное меню системы.
Обратите внимание, что это отличается от этих вопросов, которые просто пытаются отключить copy/paste/etc.:
- Как отключить копирование/вставку из/в EditText
- EditText: Отключить всплывающее меню "Вставить/Заменить" в событии Clicker для выбора текста
- как отключить параметр вставки в android EditText
- Android: как полностью отключить функцию копирования и вставки в Edittext
Хотя я не получаю контекстное меню, появляющееся в симуляторе, я получаю его на моем Android 5.0.2 Xiaomi.
Я пробовал:
-  setCustomSelectionActionModeCallback" решение
-  setLongClickable(false);" решение
-  onTouchEvent" решение
Я открыт для взлома, но мне нужно, чтобы он постоянно работал на разных устройствах. Марк Мерфи (Commons Guy) написал некоторое время назад в ответ другому пользователю, пытающемуся сделать что-то подобное:
Я подозреваю, что даже если вы придумаете ответ, это не сработает через устройства. У производителей устройств была склонность собственное "контекстное меню" для EditText, победив попытки разработчиков добавить элементов в это контекстное меню. Я предполагаю, что попытка блокировать контекстное меню будет иметь похожие результаты.
Мне повезло?
Единственное, что я могу сейчас подумать, - полностью переписать TextView и EditText с нуля (ну, изменив исходный код Android). Я знаю кого-то другого, кто сделал что-то подобное, но его код не является открытым исходным кодом. Прежде чем я сделаю этот важный шаг, я хочу попытаться попросить более простое решение здесь в Stack Overflow.
  Обновление: Я пытался изменить исходный код TextView за последние два дня, и он выглядит как 6-месячный проект. Это масса взаимосвязанных классов. Мне нужно другое решение, но у меня нет идей.
MVCE
Это самый простой способ подумать о том, чтобы воссоздать проблему. Из моего пользовательского EditText нет ничего необходимого. Макет имеет один EditText, сделанный путем замены проекта по умолчанию Hello World TextView. Я изменил min API до 11, чтобы избежать использования устаревших методов.
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        EditText editText = (EditText) findViewById(R.id.edit_text);
        editText.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
            @Override
            public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { return false; }
            @Override
            public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { return false; }
            @Override
            public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { return false; }
            @Override
            public void onDestroyActionMode(ActionMode actionMode) { }
        });
    }
}
Контекстное меню в симуляторе (работает API 24) все еще отображается, когда я нажимаю на дескриптор курсора (но не на длинный клик или двойной щелчок). Вот изображение:
На моем телефоне Xiaomi MIUI под управлением Android 5.0 я получаю контекстное меню во всех ситуациях (щелчок курсора, длинный щелчок, двойной щелчок).
Update
Решение Aritra Roy работает в симуляторе, на некоторых других устройствах, которые он тестировал, и на моем устройстве. Я принял его ответ, потому что он решает мою оригинальную проблему. Единственным отрицательным побочным эффектом является то, что выбор текста также отключен.

