Deseo poder enviar texto formateado (es decir, texto con formato de extensión) de una de las actividades de mi aplicación a otra. Estas instancias CharSequence
viven profundamente dentro de algunos tipos de Parcelable
que creé.¿Cómo obtengo de Parcel a CharSequence que se guardó usando TextUtils.writeToParcel (...)?
Por ejemplo, al cálculo de referencias uno de los tipos que lleva formateados CharSequence
s utilizo TextUtils.writeToParcel
de la siguiente manera:
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 ... */
}
El problema es que no sé cómo recuperar el CharSequence
del Parcel
en mi constructor privado.
El siguiente no no trabajo:
private HoldsCharSequence(Parcel in) {
cs = (CharSequence) in.readValue(CharSequence.class.getClassLoader());
}
me sale el siguiente error:
android.os.BadParcelableException: ClassNotFoundException when unmarshalling
Otros dos cosas: 1. que ya han puesto en práctica con éxito mi propia costumbre Parcelable
objetos, el problema es con CharSequence
s en particular. 2. Sé que TextUtils.writeToParcel
hará un trabajo de mejor esfuerzo al guardar el formato de texto, puedo vivir con eso.
Trate cs = in.readValue (getClass() getClassLoader().); – yorkw
@yorkw, su enfoque arroja el mismo resultado ('ClassNotFoundException'). – gdecaso