我有一个名为 的类PageItem
,它有一个以 aContext
作为参数的构造函数:
PageItem(Context context)
{
super(context);
this.context = context;
}
PageItem
具有以下属性:
private int id;
private String Title;
private String Description;
public Newsprovider newsprovider;
public Topic topic;
Newsprovider
并且Topic
是我的应用程序的其他类,并具有以下构造函数:
Newsprovider (Context context)
{
super(context);
this.context = context;
}
Topic (Context context)
{
super(context);
this.context = context;
}
PageItem
,Newsprovider
并且Topic
是 的子类SQLiteOpenHelper
。
我想PageItem
用 Gson 反序列化数组,所以我写道:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(PageItem.class, new PageItemInstanceCreator(context));
Gson gson = gsonBuilder.create();
Pageitem pis[] = gson.fromJson(s, PageItem[].class);
PageItemInstanceCreator
定义为:
public class PageItemInstanceCreator implements InstanceCreator<PageItem>
{
private Context context;
public PageItemInstanceCreator(Context context)
{
this.context = context;
}
@Override
public PageItem createInstance(Type type)
{
PageItem pi = new PageItem(context);
return pi;
}
}
调试时,PageItem
实例具有正确的“MainActivity”作为上下文,但其newsprovider
成员变量的上下文 = null。
GsonPageItem
使用正确的构造函数创建了对象,但它Newsprovider
使用默认的无参数构造函数创建了实例。我怎样才能解决这个问题?