という名前のクラスがあり、パラメーターとして受け取るPageItem
コンストラクターがあります。Context
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
。
Gson で配列をデシリアライズしたいPageItem
ので、次のように書きました。
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
メンバー変数には context = null があります。
GsonPageItem
は正しいコンストラクターを使用してオブジェクトを作成しましたがNewsprovider
、デフォルトのパラメーターなしのコンストラクターを使用してインスタンスを作成しました。どうすればこれを修正できますか?