Android报错:android.text.SpannableString cannot be cast to java.lang.String解决方案

5,668次阅读
2 条评论

共计 512 个字符,预计需要花费 2 分钟才能阅读完成。

前言

在写安卓数据回传时,要求将 EditText 中输入的数据传递给上一个页面,但是使用了其 getText() 方法取到输入值并使用 Intent.putExtra() 方法将值带入,但是返回上一个页面却报错无法取值。
Android 报错:android.text.SpannableString cannot be cast to java.lang.String 解决方案

正文

报错的写法为:
Intent in = new Intent();
Log.i(TAG, "onClick:"+editText.getText());
in.putExtra("str",editText.getText());
setResult(1,in);
finish();

后面发现 editText.getText() 返回的是 Editable 对象,而 Editable 对象又继承了 CharSequence 接口,所以在写的时候 IDE 并不会报错。

所以正确的写法应该为:
Intent in = new Intent();
Log.i(TAG, "onClick:"+editText.getText());
in.putExtra("str",editText.getText().toString());
setResult(1,in);
finish();
正文完
使用官方微信小程序体验更多功能
post-qrcode
 6
憧憬Licoy
版权声明:本站原创文章,由 憧憬Licoy 于2017-08-22发表,共计512字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(2 条评论)
买essay 评论达人 LV.1
2017-09-21 19:58:03 回复

非常好的分享

 Windows  Chrome  乌克兰