我知道有可能通过put / get-Serializable发送实现Serializable或Parcelable的对象,相应地使用Intents和Bundles put / get-Parcelable。
我需要将Activity中的Marker对象发送到Fragment。我已经发送了其他原始数据,但是因为它没有实现上面提到的任何接口而遇到了Marker对象的麻烦。我认为为一个Marker字段创建一个单独的类并不是一个好主意。
有什么想法吗?
答案 0 :(得分:1)
正如@tyczj评论的那样,Marker没有实现Parcelable。更进一步,它是最终的,所以你不能将它子类化。
最好的办法是让片段直接从活动中获取标记。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Marker marker = ((MainActivity)getActivity).getmarker();
if (marker != null) {
// Do something with marker object
}
您的活动会将标记保存为实例字段,并创建一个获取它的方法:
Marker mMarker;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mMarker = mMap.addMarker(new MarkerOptions().position(new LatLng(20, 100)));
...
}
public Marker getMarker() {
return mMarker;
}