剪切,复制,粘贴在Android

我想在我的EditText中实现剪切,复制,粘贴function,我试着用下面的代码:

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

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

任何build议非常感谢…谢谢!

Solutions Collecting From Web of "剪切,复制,粘贴在Android"

为复制数据

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

最后,我能够复制,粘贴在我的应用程序..现在我可以通过使用此代码只粘贴选定的文本:

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

我们可以这样做:

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