小编gde*_*aso的帖子

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

我希望能够将我的应用程序活动之一的格式化文本(即格式跨度的文本)发送到另一个.这些CharSequence实例深入Parcelable到我创建的某些类型中.

例如,当编组其中一个带有格式化CharSequences 的类型时,我使用TextUtils.writeToParcel如下:

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 ... */
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何CharSequenceParcel我的私有构造函数中检索.

以下就不能正常工作:

private HoldsCharSequence(Parcel in) {
    cs = (CharSequence) in.readValue(CharSequence.class.getClassLoader());
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

android.os.BadParcelableException: ClassNotFoundException when unmarshalling
Run Code Online (Sandbox Code Playgroud)

还有两件事:1.我已经成功实现了自己的自定义Parcelable对象,CharSequence特别是问题.2.我知道TextUtils.writeToParcel在保存文本格式方面会做出最大努力,我可以忍受.

android parcelable

12
推荐指数
1
解决办法
2567
查看次数

标签 统计

android ×1

parcelable ×1