剪切,复制,粘贴在android中

时间:2011-05-31 09:38:48

标签: android clipboard android-edittext

我想在EditText中实现剪切,复制,粘贴功能,我尝试使用以下代码:

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

用于粘贴文本,但它将整个文本粘贴到另一个Editbox中。我想复制所选文本并将该文本粘贴到同一个Editbox中,就像普通的记事本一样..

非常感谢任何建议...... 谢谢!!

3 个答案:

答案 0 :(得分:5)

用于复制数据

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);用于粘贴数据。

答案 1 :(得分:3)

最后我能够复制,粘贴我的应用程序..现在我可以使用以下代码粘贴所选文本:

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());

答案 2 :(得分:0)

我们可以这样做:

    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);