2011-11-08 15 views
7

android.text.ClipboardManager został wycofany od poziomu interfejsu API 11 i zastąpiony przez android.content.ClipboardManager (source).Radzenie sobie z przestarzałym android.text.ClipboardManager

Jak napisać kod obsługujący oba przypadki? Importowanie android.content.ClipboardManager i używanie tego, które działa w 11+, ale życie zamyka się w 10. Zmiana importu do android.text.ClipboardManager rzuca kilka ostrzeżeń o wycofaniu w 11+.

W jaki sposób mogę płynnie obsłużyć oba przypadki? Co muszę zaimportować?

Odpowiedz

6

Skończyło się na tym, że używałem starego sposobu (android.text.ClipboardManager i kod z this answer) oraz parę adnotacji @SuppressWarnings ("deprecation").

+1

A co roztworze Deprecation .. ?? –

4

Jawnie:

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

Ponieważ ta ma nadal pracować na starszych urządzeń, to jest prawdopodobne, że przestarzałe kod nie zostanie usunięty z Androidem.

0

Jeśli nadal wspierasz < SDK 11, wykonujesz zbyt wiele pracy. Ustaw min do 15 i użyć tego kodu:

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

cóż, mój gf używa starego kindle, więc sdk 15 nie jest wyborem – codingpuss

2

Nawiązując do 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"); 
} 
Powiązane problemy