Как добавить параметры в родное контекстное меню «Редактировать текст» Android - PullRequest
6 голосов
/ 04 февраля 2011

Можно ли добавить что-то в список элементов, который появляется, когда пользователь долго нажимает на любой текст редактирования? (Вырезать, скопировать, вставить, выделить текст, выделить все, метод ввода) Я хочу добавить еще один параметр в это меню, но не могу понять.

Здесь есть дубликат этого вопроса здесь , и в последнем комментарии к первому ответу говорится, что это "возможно, но не красиво". Тогда нить умирает.

Мне бы очень хотелось увидеть любой рабочий пример, грязный или нет:)

Ответы [ 3 ]

3 голосов
/ 08 марта 2016

Добавление еще нескольких пунктов меню в существующее контекстное меню правки текста возможно только в том случае, если правка текста есть в твоей деятельности.Это можно сделать с помощью onCreateContextMenu().

Если EditText отсутствует в вашей деятельности, то это невозможно.

// добавить элементы в меню

EditText UserNameEditText = (EditText)findViewById(R.id.usernameEdittext);
registerForContextMenu(UserNameEditText);

// переопределить контекстное меню

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
{
    super.onCreateContextMenu(menu, v, menuInfo);

    if (v.getId()==R.id.usernameEdittext) 
    {
        menu.add(0, 1, 0, "Fetch New Username");
        menu.add(0, 2, 0, "Check For Duplicate");
    }   
}

Если контекстное меню не вызывается, значит ваш текст редактирования не входит в вашу деятельность.

2 голосов
/ 21 июня 2013

И то и другое - да!

Во-первых, вам нужно создать класс, реализация которого OnCreateContextMenuListener,

public class CMenu implements OnCreateContextMenuListener {  

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {

    //Do Something , Like:

    menu.add(0, 1, 0, "copy");
    menu.add(0, 2, 0, "paste");
    }
}

затем

editText.setOnCreateContextMenuListener(cMenu);

Теперь все нормально ~

2 голосов
/ 04 февраля 2011

Можно ли добавить что-то в список элементов, который появляется, когда пользователь долго нажимает на любой текст редактирования?

Если в вашей активности есть EditText, выможете сделать это через onCreateContextMenu().

Если EditText не в вашей деятельности, то нет.

Здесь есть дубликат этого вопроса и последний комментарийдля первого ответа говорит, что это «возможно, но не красиво».Затем ветка умирает.

Во-первых, этому посту два года, что почти навсегда в годы Android.

Во-вторых, я вполне уверен, что мистер Хасеман невереноценка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...