2012-10-11 6 views
8

Mam problem z kopiowaniem tekstu do schowka. Staram się skopiować tak:Android: Kopiowanie tekstu do schowka pod kątem 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); 

Ale problem jest w kompilator, który rzuca:

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

Jak mogę skopiować tekst do schowka na Android API < 11? Jeśli spróbuję sprawdzić wersję API Androida przed kopiowaniem - mój kod nawet się nie kompiluje. Może ktoś zna odpowiedź na to pytanie?

Odpowiedz

26

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

Dodano: może trzeba oczyścić i budować swój projekt :)

+0

Tak, próbowałem ten kod, ale to nie działa. Nie kompiluje się nawet, ponieważ kompilator mówi: Połączenie wymaga poziomu API 11 (bieżący min wynosi 7): android.content.ClipboardManager # setPrimaryClip line 245 Problem z Androidem Lint. – JavaRunner

+0

czy zadeklarowałeś coś podobnego '' w pliku manifestu ?? –

+0

Pewnie. Kompilator zgłasza błąd: "** current ** min is 7" (to moja aplikacja potrzebuje min API7). Więc mój manifest jest następujący: JavaRunner