1

我正在尝试从我的主要活动中启动一项新活动。我有:

    Button butt = new Button(this);
    butt.setText("Colors");
    butt.setBackgroundColor(paintCanvas.currentColor());
    butt.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View view)
        {
            Intent intent = new Intent(PaintCanvas.this, PaletteActivity.class);
            startActivity(intent);

        }

    });

这将启动新活动,然后立即抛出错误:

10-18 01:41:01.090  28582-28582/com.deekor.fingerpainting E/AndroidRuntime: FATAL EXCEPTION: main
    java.lang.RuntimeException: Parcel: unable to marshal value android.graphics.Path@415c3c68
    at android.os.Parcel.writeValue(Parcel.java:1235)
    at android.os.Parcel.writeList(Parcel.java:622)
    at android.os.Parcel.writeValue(Parcel.java:1195)
    at android.os.Parcel.writeMapInternal(Parcel.java:591)
    at android.os.Bundle.writeToParcel(Bundle.java:1619)
    at android.os.Parcel.writeBundle(Parcel.java:605)
    at android.os.Parcel.writeValue(Parcel.java:1170)
    at android.os.Parcel.writeSparseArray(Parcel.java:662)
    at android.os.Parcel.writeValue(Parcel.java:1198)
    at android.os.Parcel.writeMapInternal(Parcel.java:591)
    at android.os.Bundle.writeToParcel(Bundle.java:1619)
    at android.os.Parcel.writeBundle(Parcel.java:605)
    at android.os.Parcel.writeValue(Parcel.java:1170)
    at android.os.Parcel.writeMapInternal(Parcel.java:591)
    at android.os.Bundle.writeToParcel(Bundle.java:1619)
    at android.os.Parcel.writeBundle(Parcel.java:605)
    at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2078)
    at android.app.ActivityThread$StopInfo.run(ActivityThread.java:2874)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4745)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)

怎么了?我的观点使用路径,但为什么这会影响我陈述一项新活动?

4

2 回答 2

2

aPath不可序列化。我必须创建自己的实现可序列化的类。

于 2013-10-20T20:27:42.847 回答
0

Path 类中没有任何不可序列化的内容,因此您可以使用以下类而不是 Path 来摆脱困境。

public class SerializablePath extends Path implements Serializable {
}
于 2016-06-10T21:30:17.973 回答