Как настроить дефолтное контекстное меню выделения текста в андроиде?

Настройка дефолтного контекстного меню выделения текста на Android может быть выполнена с помощью использования класса EditText, который предоставляет встроенный функционал для работы с текстом.

1. Создайте новый проект Android Studio или откройте существующий проект.
2. Откройте XML-файл макета, в котором нужно добавить поле для ввода текста. Например, activity_main.xml.
3. Внутри вашего XML-файла добавьте элемент EditText:

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Пример текста для выделения" />

4. Откройте Java-файл активности, где нужно настроить контекстное меню. Например, MainActivity.java.
5. Создайте поле класса для хранения экземпляра класса EditText:

private EditText editText;

6. В методе onCreate() найдите поле в макете по его id:

editText = findViewById(R.id.editText);

7. Чтобы включить контекстное меню выделения текста, добавьте следующий код в метод onCreate():

registerForContextMenu(editText);

8. Определите методы onCreateContextMenu() и onContextItemSelected() для обработки событий контекстного меню.
9. Внутри метода onCreateContextMenu() настройте элементы контекстного меню, добавив их с помощью метода add():

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    getMenuInflater().inflate(R.menu.context_menu, menu);
}

10. Создайте XML-файл ресурсов для контекстного меню, например, context_menu.xml. В этом файле можете добавить пункты меню, которые быть показаны при выделении текста в поле ввода. Например:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_copy"
        android:title="Копировать" />
    <item
        android:id="@+id/menu_paste"
        android:title="Вставить" />
    <item
        android:id="@+id/menu_cut"
        android:title="Вырезать" />
</menu>

11. В методе onContextItemSelected() обработайте выбранный пункт меню:

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_copy:
            // Ваш код обработки пункта "Копировать"
            return true;
        case R.id.menu_paste:
            // Ваш код обработки пункта "Вставить"
            return true;
        case R.id.menu_cut:
            // Ваш код обработки пункта "Вырезать"
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

Готово! Теперь, при долгом нажатии на текст в поле ввода, будет отображаться контекстное меню с заданными пунктами действий. Вы можете настроить обработку каждого пункта меню по своему усмотрению.