首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从包中检索使用CharSequence (.)保存的TextUtils.writeToParcel?

如何从包中检索使用CharSequence (.)保存的TextUtils.writeToParcel?
EN

Stack Overflow用户
提问于 2012-03-28 21:38:03
回答 1查看 3.1K关注 0票数 13

我想要能够发送格式化的文本(即,文本的格式跨度)从我的一个应用活动到另一个。这些CharSequence实例存在于我创建的一些Parcelable类型中。

例如,在编组带有格式化CharSequence的类型之一时,我使用TextUtils.writeToParcel,如下所示:

代码语言:javascript
复制
public class HoldsCharSequence {

    /* some formatted string that uses basic spans (e.g., ForegroundColorSpan) */
    private CharSequence cs;

    public void writeToParcel(Parcel out, int flags) {
        TextUtils.writeToParcel(cs, out, 0);
    }

    /* ... rest of the code ... */
}

问题是,我不知道如何在私有构造函数中从CharSequence中检索Parcel

下面的不适用于

代码语言:javascript
复制
private HoldsCharSequence(Parcel in) {
    cs = (CharSequence) in.readValue(CharSequence.class.getClassLoader());
}

我得到以下错误:

代码语言:javascript
复制
android.os.BadParcelableException: ClassNotFoundException when unmarshalling

还有两件事: 1.我已经成功地实现了我自己的自定义Parcelable对象,特别是CharSequence的问题。2.我知道TextUtils.writeToParcel会尽最大努力保存文本格式,我可以接受这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-29 14:10:07

如果其他人感兴趣,我在this post中找到了答案。

使用CharSequence检索存储在Parcel中的TextUtils.writeToParcel(...)的正确方法是

代码语言:javascript
复制
cs = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9916044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档