Podczas kopiowania String
z dowolnej strony przeglądarki, pasteData
działa poprawnie. Jednak podczas kopiowania SpannedString
z wiadomości wysłanej edytorze punkcie (pola), awarii aplikacji i pokazuje ten komunikat o błędzie:Dlaczego wyświetlać java.lang.ClassCastException: android.text.SpannableString nie można przesłać do java.lang.String?
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
Mój kod:
// since the clipboard contains plain text.
ClipData.Item item = clipBoard.getPrimaryClip().getItemAt(0);
// Gets the clipboard as text.
String pasteData = new String();
pasteData = (String) item.getText();
gdzie instancja ClipboardManager
zdefiniowany jako clipBoard
poniżej :
clipBoard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new ClipboardListener());
Wszystko, co próbuję zrobić, to użyć pasteData
w String
format. Jak pozbyć się tego błędu? Każda pomoc jest doceniana.
kodowej tylko odpowiedź nie jest zalecane, ponieważ może to mylić OP i przyszłych czytelników. Zamiast tego wyjaśnij, co robi kod. –
Jest to obejście i nie rozwiązuje problemu głównego. Problem polega na tym, że item.getText() zwraca CharSequence, a nie String. OP powinien użyć item.getText(). ToString(), aby przekonwertować CharSequence na ciąg –