Gson десериализует вложенные объекты с InstanceCreator

У меня есть класс с именем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.

Я хочу десериализоватьPageItem массив с Gson, поэтому я написал:

GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(PageItem.class, new PageItemInstanceCreator(contex,t));
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 переменная-член имеет контекст = ноль.

Gson созданPageItem объект, используя правильный конструктор, но он создалNewsprovider экземпляр с использованием конструктора по умолчанию без параметров. Как я могу это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос