2012-10-11 51 views
8

Tengo un problema al copiar un texto en el portapapeles. Trato de copiar la siguiente manera:Android: copiar un texto en el portapapeles para API <11

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); 

Pero el problema está en que el compilador que arroja:

Call requires API level 11 (current min is 7): android.content.ClipboardManager#setPrimaryClip line 245 Android Lint Problem. 

¿Cómo puedo copiar un texto en el portapapeles en la API de Android < 11? Si trato de verificar la versión API de Android antes de copiar, mi código ni siquiera se compila. Tal vez alguien sabe una respuesta a esta pregunta?

Respuesta

26

Referencia: How to copy text programatically in my Android app

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); 
} 

Agregado: puede que tenga que limpiar y construir su proyecto :)

+0

Sí, lo probado este código, pero no funciona. Incluso no se compila porque el compilador dice: La llamada requiere API nivel 11 (el mínimo actual es 7): android.content.ClipboardManager # setPrimaryClip línea 245 Android Lint Problema. – JavaRunner

+0

¿Has declarado algo como esto '' en el archivo de manifiesto? –

+0

Claro. El compilador arroja un error: "** actual ** min es 7" (mi aplicación necesita min API7). Entonces mi manifiesto es: JavaRunner

Cuestiones relacionadas