Omr Omr - 24 days ago 11
Java Question

Why show java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String?

When copying

String
from any browser page,
pasteData
works properly.
However when copying
SpannedString
from a message sent item editor(field), the application crashes and shows this error message:

java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String


My code:

// 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();


where the
ClipboardManager
instance defined as
clipBoard
, below:

clipBoard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new ClipboardListener());


All I'm trying to do is use
pasteData
in
String
format.
How to get rid of this error?
Any help is appreciated.

Answer

SpannableString is not String directly. so, you can not cast. but, it can be converted to string. you can convert something to string with concatenating with empty string.

pasteData = "" + item.getText();
Comments