При копировании String
с любой страницы браузера, pasteData
работает правильно. Однако при копировании SpannedString
из сообщения, отправленного редактора элемента (поля), аварий приложений и показывает это сообщение об ошибке:Зачем показывать java.lang.ClassCastException: android.text.SpannableString не может быть добавлено в java.lang.String?
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
Мой код:
// 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();
, где экземпляр ClipboardManager
определяется как clipBoard
, ниже :
clipBoard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new ClipboardListener());
Все, что я пытаюсь сделать, это использовать pasteData
в String
формат. Как избавиться от этой ошибки? Любая помощь приветствуется.
только код ответа не рекомендуется, поскольку это может запутать ОП и будущих читателей. Вместо этого объясните, что делает код. –
Это работа вокруг и не затрагивает проблему с корнем. Проблема в том, что item.getText() возвращает CharSequence, а не строку. OP должен использовать item.getText(). ToString() для преобразования CharSequence в String –