在FUNF中实现BundleTypeAdapter

时间:2013-01-08 19:15:59

标签: android bundle gson

所以我希望通过实现我在bundletypeadapter中找到的FUNF project来使用gson将bundle对象转换为json。

我的问题是我不完全确定如何正确实现该代码块。目前对我有意义的唯一方法导致循环依赖。

通常如何实现新的TypeAdapter:

...
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Location.class, new LocationDeserializer());
gsonBuilder.registerTypeAdapter(Location.class, new LocationSerializer());
Gson gson = gsonBuilder.create(); 
...

或者,在这种情况下我会期待:

...
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Bundle.class, new BundleTypeAdapter());
Gson gson = gsonBuilder.create();
...

我的问题是BundleTypeAdapter唯一的构造函数是BundleTypeAdapter(Gson gson),我不太确定如何传递我尚未创建或实例化的对象......

任何想法?

1 个答案:

答案 0 :(得分:1)

Gson为您描述的案例TypeAdapterFactory提供了解决方案。 BundleTypeAdapter在名为FACTORY的静态成员变量中为您定义所需的工厂。要使用它,请致电:

gsonBuilder.registerTypeAdapterFactory(BundleTypeAdapter.FACTORY);