2011-11-08 13 views
7

android.text.ClipboardManager ha quedado obsoleta desde el nivel API 11, y se ha reemplazado por android.content.ClipboardManager (source).Tratando con la versión obsoleta de android.text.ClipboardManager

¿Cómo se escribe el código que admite ambos casos? Importar android.content.ClipboardManager y usar eso funciona en 11+ pero la fuerza se cierra en 10. Cambiar la importación a android.text.ClipboardManager arroja un montón de advertencias de desactivación en 11+.

¿Cómo puedo manejar ambos casos sin problemas? ¿Qué necesito para importar?

Respuesta

6

Terminé usando el método anterior (android.text.ClipboardManager y el código de this answer), junto con un par de anotaciones @SuppressWarnings ("deprecation").

+1

Entonces ¿qué pasa con la solución desaprobación .. ?? –

4

explícitamente:

@SuppressWarnings("deprecation") 
    android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
    clipboard.setText(shareViaSMSBody); 

Dado que esto tiene que seguir trabajando en los dispositivos más antiguos, es probable que el código obsoleto no será retirado de Android.

0

Si aún admite < SDK 11, está haciendo demasiado trabajo. Establecer min a 15 Utilizando este código:

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
ClipData clip = ClipData.newPlainText("label for text", "text to copy"); 
clipboard.setPrimaryClip(clip); 
+0

bueno, mi novia usa un viejo kindle así que sdk 15 no es una opción – codingpuss

2

Refiriéndose a this answer:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context 
     .getSystemService(Context.CLIPBOARD_SERVICE); 
final android.content.ClipData clipData = android.content.ClipData 
     .newPlainText("text label", "text to clip"); 
clipboardManager.setPrimaryClip(clipData); 
} else { 
final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context 
     .getSystemService(Context.CLIPBOARD_SERVICE); 
clipboardManager.setText("text to clip"); 
} 
Cuestiones relacionadas