剪切,复制,粘贴在android中

Nib*_*ain 8 clipboard android android-edittext

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

    ClipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    editbox1.setText(ClipMan.getText());
Run Code Online (Sandbox Code Playgroud)

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

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

Nir*_*tel 5

用于复制数据

ClipData clip = ClipData.newPlainText("simple text",Value);
ClipMan.setPrimaryClip(clip);
Run Code Online (Sandbox Code Playgroud)

并获取已复制的数据

CharSequence pasteData="";
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
pasteData = item.getText();
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您可以使用EditText.getText()而不是Value..并EditText.setText(pasteData);粘贴该数据.


Nib*_*ain 3

最后,我可以复制、粘贴到我的应用程序中。现在我可以使用以下代码仅粘贴选定的文本:

Editable s1;
EditText editbox2;
Run Code Online (Sandbox Code Playgroud)

复制所选文本:

       if(editbox2.getSelectionEnd() > editbox2.getSelectionStart()) 
        {
            s1 = (Editable) editbox2.getText().subSequence(editbox2.getSelectionStart(), editbox2.getSelectionEnd());
        }else
        {
            s1 = (Editable) editbox2.getText().subSequence(editbox2.getSelectionEnd(), editbox2.getSelectionStart());
        }
Run Code Online (Sandbox Code Playgroud)

粘贴所选文本:

             editbox2.getText().replace(Math.min(editbox2.getSelectionStart(),editbox2.getSelectionEnd()), Math.max(editbox2.getSelectionStart(), editbox2.getSelectionEnd()),s1, 0, s1.length());
Run Code Online (Sandbox Code Playgroud)