¿Cómo copiar texto al portapapeles en Android?

Resuelto Darshan Gowda asked hace 54 años • 32 respuestas

¿Alguien puede decirme cómo copiar el texto presente en una vista de texto particular al portapapeles cuando se presiona un botón?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainpage);
    textView = (TextView) findViewById(R.id.textview);
    copyText = (Button) findViewById(R.id.bCopy);
    copyText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            
            ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
            String getstring = textView.getText().toString();
            
            // Help to continue :)
        }
    });
}

Quiero copiar el texto en TextView textView al portapapeles cuando bCopyse presiona el botón.

Darshan Gowda avatar Jan 01 '70 08:01 Darshan Gowda
Aceptado

Usar el administrador del portapapeles

ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
ClipData clip = ClipData.newPlainText(label, text);
clipboard.setPrimaryClip(clip);

Asegúrate de haber importado android.content.ClipboardManagery NO android.text.ClipboardManager . Este último está en desuso. Consulte este enlace para obtener más información.

stinepike avatar Oct 08 '2013 16:10 stinepike

Aquí el método para copiar texto al portapapeles:

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

Este método funciona en todos los dispositivos Android.

vuhung3990 avatar Feb 28 '2015 10:02 vuhung3990