Here is how you can enable the Standard Copy/Paste:
TextView
class has a definition:
boolean canPaste() {
return (mText instanceof Editable
&& mEditor != null && mEditor.mKeyListener != null
&& getSelectionStart() >= 0
&& getSelectionEnd() >= 0
&& getClipboardManagerForUser().hasPrimaryClip());
}
Which can be bypassed using:
public static void enableCopyPaste(final TextView tv) {
if(tv.getKeyListener()==null){
tv.setKeyListener(new KeyListener(){
@Override
public void clearMetaKeyState(View p1, Editable p2, int p3) {
// unused
}
@Override
public int getInputType() {
return tv.getInputType();
}
@Override
public boolean onKeyDown(View p1, Editable p2, int p3, KeyEvent p4) {
// unused
return false;
}
@Override
public boolean onKeyOther(View p1, Editable p2, KeyEvent p3) {
// unused
return false;
}
@Override
public boolean onKeyUp(View p1, Editable p2, int p3, KeyEvent p4) {
// unused
return false;
}
});
}
tv.setTextIsSelectable(true);
CharSequence mText = tv.getText();
if(!(mText instanceof Editable)){
tv.setText(mText,TextView.BufferType.EDITABLE);
}
}
By calling:
enableCopyPaste(YOUR_TEXTVIEW);
Ps: It also enables Cut, Share etc