Вырезать, копировать, вставлять в Android - PullRequest
8 голосов
/ 31 мая 2011

Я хочу реализовать функцию вырезания, копирования, вставки в моем EditText, я попытался с помощью следующего кода:

    ClipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    editbox1.setText(ClipMan.getText());

для вставки текста, но вставляет весь текст в другое поле «Правка». Я хочу скопировать выделенный текст и вставить этот текст в то же поле «Правка», как работает обычный блокнот.

Любые предложения с благодарностью ... Спасибо !!

Ответы [ 3 ]

5 голосов
/ 31 мая 2011

для копирования данных

ClipData clip = ClipData.newPlainText("simple text",Value);
ClipMan.setPrimaryClip(clip);

и получить данные, которые были скопированы

CharSequence pasteData="";
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
pasteData = item.getText();

в вашем случае вы можете использовать EditText.getText() вместо Value .. и EditText.setText(pasteData); для вставки этих данных.

3 голосов
/ 01 июня 2011

Наконец, я могу копировать, вставлять в свое приложение. Теперь я могу вставить только выбранный текст, используя этот код:

Editable s1;
EditText editbox2;

для копирования выделенного текста:

       if(editbox2.getSelectionEnd() > editbox2.getSelectionStart()) 
        {
            s1 = (Editable) editbox2.getText().subSequence(editbox2.getSelectionStart(), editbox2.getSelectionEnd());
        }else
        {
            s1 = (Editable) editbox2.getText().subSequence(editbox2.getSelectionEnd(), editbox2.getSelectionStart());
        }

чтобы вставить выделенный текст:

             editbox2.getText().replace(Math.min(editbox2.getSelectionStart(),editbox2.getSelectionEnd()), Math.max(editbox2.getSelectionStart(), editbox2.getSelectionEnd()),s1, 0, s1.length());
0 голосов
/ 08 мая 2015

мы можем сделать так:

    int min2 = 0;
    int max2 = editText.getText().length();
    if (editText.isFocused()) {
        final int selStart = editText.getSelectionStart();
        final int selEnd = editText.getSelectionEnd();

        min2 = Math.max(0, Math.min(selStart, selEnd));
        max2 = Math.max(0, Math.max(selStart, selEnd));
     }
     ClipData abc = myClipboard.getPrimaryClip();
     ClipData.Item item = abc.getItemAt(0);

     String text = item.getText().toString();
     editText.getText().replace(min2,max2 , text);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...