Android: Copy to clipboard selected text from a TextView Android: Copy to clipboard selected text from a TextView android android

Android: Copy to clipboard selected text from a TextView


TextView tv;String stringYouExtracted = tv.getText().toString();int startIndex = tv.getSelectionStart();int endIndex = tv.getSelectionEnd();stringYouExtracted = stringYouExtracted.subString(startIndex, endIndex);ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);clipboard.setText(stringYouExtracted);

EDIT (The previous is the full answer, but I ran into my answer by mistake so I would like to add):

With Newer APIs, change the last two lines to :

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) {    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);    clipboard.setText(stringYouExtracted);} else {    android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);    android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", stringYouExtracted);            clipboard.setPrimaryClip(clip);}

"Copied Text" is a title for your COPY entity in newer APIS


you can do it this way:

ClipboardManager myClipboard = myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);ClipData myClip;EditText editText = (EditText) findViewById(R.id.editText3);int min = 0;int max = editText.getText().length();if (editText.isFocused()) {    final int selStart = editText.getSelectionStart();    final int selEnd = editText.getSelectionEnd();    min = Math.max(0, Math.min(selStart, selEnd));    max = Math.max(0, Math.max(selStart, selEnd));}// here is your selected textfinal CharSequence selectedText = editText.getText().subSequence(min, max);String text = selectedText.toString();// copy to clipboardmyClip = ClipData.newPlainText("text", text);myClipboard.setPrimaryClip(myClip);

Replace EditText with TextView