java - SpannableString 可以序列化吗?

标签 java android serializable spannablestring

我想通过 Intent 发布一个带有 SpannableString 的对象。我让对象实现 Serializable,但它会抛出

java.io.NotSerializableException: android.text.SpannableString

所以我让 SpannableString 实现 Serializable。

private class MySpannableString extends SpannableString implements Serializable{
    public MySpannableString(CharSequence source) {
        super(source);
    }
}

但是我无法在下一个Activity中获取对象。

最佳答案

我已经测试过 SpannableString 作为 Serializable 但它会在第二个 Activity 中抛出错误 Can not cast Serializable to SpannableString, null value will return as default。所以我认为这可能是不可能的。

但是我们可以通过下面的简单方式传递SpannableString

第一个 Activity

SpannableString text == ...;
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("KEY", text);
startActivity(intent);

第二个 Activity

SpannableString a = (SpannableString). getIntent().getCharSequenceExtra("KEY");
//we can get value because SpannableString implements CharSequence

DEMO

关于java - SpannableString 可以序列化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107527/

相关文章:

java - Getters 和 Setters 仅适用于最后创建的对象

java - eclipse 4.5.1。 (MARS.1) 未找到方法 : setDefaultEditor

android - 在启动另一个 Activity 之前清除 Activity 堆栈

java - 替换 ZipOutputStream 中的文件

java - 是否可以将对象以人类可读的格式发送到文件?

java split regex - 任意字符组合

java - Spring Hibernate 的数据库每用户连接

android - 如何在android中显示对话框外的图像?

android - 来自 ImageView 的图像在共享时仅显示黑色图像?

java - 在不提供 writeObject/readObject 方法的情况下实现 Serializable