¿Cómo copiar texto mediante programación en mi aplicación de Android?

Resuelto Zach asked hace 54 años • 15 respuestas

Estoy creando una aplicación para Android y quiero copiar el valor de texto de un widget EditText. Es posible que el usuario presione Menu+Ay luego Menu+Ccopie el valor, pero ¿cómo haría esto mediante programación?

Zach avatar Jan 01 '70 08:01 Zach
Aceptado

Método de uso ClipboardManager#setPrimaryClip:

import android.content.ClipboardManager;

// ...

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
ClipData clip = ClipData.newPlainText("label", "Text to copy");
clipboard.setPrimaryClip(clip);

ClipboardManagerReferencia API

FlySwat avatar Oct 26 '2008 17:10 FlySwat

Entonces todos están de acuerdo en cómo se debe hacer esto, pero como nadie quiere dar una solución completa, aquí va:

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

Supongo que tienes algo como lo siguiente declarado en el manifiesto:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" />
Warpzit avatar Jun 13 '2012 09:06 Warpzit