2013-01-07 10 views
10

Próbuję skopiować tekst programowo na Android, najbardziej głosowało odpowiedź na inne pytanie warunkiem te linie, ale podczas korzystania z nich dostaję błąd: Klasa wymaga poziom API 11 (aktualny jest 8 min):Skopiuj za pomocą menedżera schowka, który obsługuje stare i nowe wersje Androida?

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

Skopiowałem linie bezpośrednio z pytania. Po przetestowaniu z import android.content.ClipboardManager; przetestowałem import android.text.ClipboardManager;, ale spowodowało to również błąd o wartości The method setPrimaryClip(ClipData) is undefined for the type ClipboardManager oraz ostrzeżenia o przestarzałym programie ClipboardManager.

Moja aplikacja obsługująca Androida 2.2 (API 8), jak mogę skopiować tekst, aby działał we wszystkich wersjach Androida?

Odpowiedz

27

spróbuje użyć coś jak następuje:

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