2011-11-08 4 views
7

android.text.ClipboardManager obsoleto dal livello API 11 e sostituito con android.content.ClipboardManager (source).Gestione di Android.text.ClipboardManager deprecato

Come si scrive codice che supporta entrambi i casi? L'importazione di android.content.ClipboardManager e l'utilizzo di questa funzione funzionano in 11+ ma la forzatura si chiude in 10. La modifica dell'importazione in android.text.ClipboardManager genera una serie di avvertimenti sulla rimozione in 11+.

Come posso gestire entrambi i casi senza problemi? Cosa devo importare?

risposta

6

ho finito per usare la vecchia maniera (android.text.ClipboardManager e il codice da this answer), insieme a un paio @SuppressWarnings ("deprecazione") annotazioni.

+1

Poi per quanto riguarda la soluzione deprecazione .. ?? –

4

esplicito:

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

Dal momento che questo deve continuare a lavorare sui vecchi dispositivi, è probabile che il codice deprecato non verrà rimosso da Android.

0

Se si sta ancora supportando lo < SDK 11 si sta facendo troppo lavoro. Impostare min a 15 e di questo codice:

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

beh, il mio gf usa un vecchio kindle quindi sdk 15 non è una scelta – codingpuss

2

Riferendosi alla 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"); 
}