I want to enable standard copy paste for a TextView (the same as for EditText). How can I do it?
I tried using a non-editable EditText but it didn\'t work well (some
Requires API 11, Updated Code, previous method is deprecated
Solution for theme full screen without ActionBar
Extend TextView
and in constructor paste following code
this.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager cManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData cData = ClipData.newPlainText("text", getText());
cManager.setPrimaryClip(cData);
Util.toast(mContext, string.text_copyed);
return true;
}
});
if someone wants to go the extra mile and do the select and copy to the clipboard with one click :
phone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("PhoneNumber", phone.getText());
clipboard.setPrimaryClip(clip);
}
});
phone is the TextView and phone.Text is the Text that will be copied to the clipboard.
In xml textview paste this code
android:textIsSelectable="true"
Then in java file,
final TextView txtcopypaste = findViewById(R.id.txtcopypaste); // my textview
txtcopypaste.setOnClickListener(new View.OnClickListener() { // set onclick listener to my textview
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(txtcopypaste.getText().toString());
Toast.makeText(getApplicationContext(), "Copied :)", Toast.LENGTH_SHORT).show();
}
});
Requirement : Need to copy and paste the text which is in the textview.
OutCome : Using textview , once i clicked the textview. Its automatically copied the text which is in the textview.
Note: While importing clipboardmanager try to prefer
Please prefer text clipboard manager
import android.text.ClipboardManager; // prefer this
try to avoid content clipboard manager
import android.content.ClipboardManager; // Not this
Try android:textIsSelectable.
i.e., android:textIsSelectable="true"
This works for copy pre-Honeycomb:
import android.text.ClipboardManager;
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(textView.getText());
Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
}
});
To enable the standard copy/paste for TextView, U can choose one of the following:
Change in layout file: add below property to your TextView
android:textIsSelectable="true"
In your Java class write this line to set it programmatically. myTextView.setTextIsSelectable(true);
And long press on the TextView you can see copy/paste action bar.