Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-Parcelable类中的上下文_Android_Parcelable - Fatal编程技术网

Android-Parcelable类中的上下文

Android-Parcelable类中的上下文,android,parcelable,Android,Parcelable,在实现Parcelable的类中,我有以下内容: private static final long serialVersionUID = 66; private HashMap<Integer, Bitmap> mBitmaps; private HashMap<Integer, Drawable> mDrawables; private Context mContext; 我得到一个错误: java.lang.RuntimeException: Parcel: un

在实现Parcelable的类中,我有以下内容:

private static final long serialVersionUID = 66;
private HashMap<Integer, Bitmap> mBitmaps;
private HashMap<Integer, Drawable> mDrawables;
private Context mContext;
我得到一个错误:

java.lang.RuntimeException: Parcel: unable to marshal value android.app.Application@4051cfe0
at android.os.Parcel.writeValue(Parcel.java:1132)
at com.example.example.ImageManager.writeToParcel(ImageManager.java:82)


dest.writeValue(mContext); is on line 82.

你在给包裹写信

你有没有要求帕可拉这样做

您需要实现Serializable或Parcelable接口。否则,该值将不会如错误所示被删除

而且

实现Parcelable接口的类还必须具有静态 名为CREATOR的字段,它是实现 Parcelable.Creator界面


检查一下。

您正在给包裹写信

你有没有要求帕可拉这样做

您需要实现Serializable或Parcelable接口。否则,该值将不会如错误所示被删除

而且

实现Parcelable接口的类还必须具有静态 名为CREATOR的字段,它是实现 Parcelable.Creator界面


检查。

只需编写一个保存上下文对象的小类,如下所示:

import android.content.Context;

public class ContextHolder {
    public static Context context = null;

    public static void setContext(Context context){
        ContextHolder.context = context;
    }

    public static Context getContext(){
        return context;
    }
}
然后,无论何时需要上下文,只要从任何需要的地方调用ContextHolder.getContext()函数即可


干杯

只需编写一个包含上下文对象的小类,如下所示:

import android.content.Context;

public class ContextHolder {
    public static Context context = null;

    public static void setContext(Context context){
        ContextHolder.context = context;
    }

    public static Context getContext(){
        return context;
    }
}
然后,无论何时需要上下文,只要从任何需要的地方调用ContextHolder.getContext()函数即可


干杯

如回答中所述:


您正在尝试向地块中添加不可序列化的对象。要序列化的对象中的对象也必须是可序列化的。

如本答案所述:


您正在尝试向地块中添加不可序列化的对象。要序列化的对象中的对象也必须是可序列化的。

最大的问题是,为什么需要将上下文写入包???小问题的答案是上下文不可打包,所以您不能。请尝试在我的代码中阅读:BitmapFactory.decodeResource(mContext.getResources(),resource));我可以更改它吗?这样我就不必使用上下文来访问getResources()?最大的问题是为什么需要将上下文写入到包中???小问题的答案是上下文不可打包,所以您不能。请尝试在我的代码中阅读:BitmapFactory.decodeResource(mContext.getResources(),resource));我可以更改它吗?这样我就不必使用上下文来访问getResources()?Yes是在我试图传递的对象的类上实现了Parcelable。Yes是在我试图传递的对象的类上实现了Parcelable。在静态变量中添加上下文是内存泄漏。在静态变量中添加上下文是内存泄漏。