编程语言
首页 > 编程语言> > 为什么要显示java.lang.ClassCastException:android.text.SpannableString不能强制转换为java.lang.String?

为什么要显示java.lang.ClassCastException:android.text.SpannableString不能强制转换为java.lang.String?

作者:互联网

从任何浏览器页面复制String时,pasteData正常工作.
但是,从消息发送项目编辑器(字段)复制SpannedString时,应用程序崩溃并显示以下错误消息:

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

我要做的就是以String格式使用pasteData.
如何摆脱这个错误?
任何帮助表示赞赏.

解决方法:

SpannableString不是直接的String.所以,你不能施展.但是,它可以转换为字符串.你可以将一些东西转换为字符串,并与空字符串连接.

pasteData = "" + item.getText();

标签:android,java,string,clipboard,spannablestring
来源: https://codeday.me/bug/20191005/1857468.html