我想在EditText中实现剪切,复制,粘贴功能,我尝试使用以下代码:
ClipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
editbox1.setText(ClipMan.getText());
用于粘贴文本,但它将整个文本粘贴到另一个Editbox中。我想复制所选文本并将该文本粘贴到同一个Editbox中,就像普通的记事本一样..
非常感谢任何建议...... 谢谢!!
答案 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);