我的地图对话框有这个片段类:
public static class MapDialogFragment extends DialogFragment {
public static MapDialogFragment newInstance(float latitude, float longitude) {
MapDialogFragment frag = new MapDialogFragment();
Bundle args = new Bundle();
args.putFloat("latitude", latitude);
args.putFloat("longitude", longitude);
frag.setArguments(args);
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
float latitude = getArguments().getFloat("latitude");
float longitude = getArguments().getFloat("longitude");
View view = getActivity().getLayoutInflater().inflate(R.layout.map_dialog, null);
return new AlertDialog.Builder(getActivity())
.setView(view)
.setTitle("Store Map")
.setNegativeButton("Done",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.create();
}
}
这会在对话框片段中拉出地图,这是自定义的膨胀视图:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
当我尝试向地图添加标记时(在Developers Guide之后),我添加了这一行:
storeMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
我收到此错误:Cannot cast from Fragment to MapFragment
在我的活动中,我确实有:private GoogleMap storeMap;
如何正确添加DialogFragment
标记?
答案 0 :(得分:1)
确保您没有将支持库片段(android.support.v4.app.Fragment
与本机片段(android.app.Fragment
)混合 - 它们都需要同步。如果您使用支持库片段,则应使用{{ 3}}代替MapFragment。