我正在开发一个应用程序,顶部有一个菜单,菜单内有一些按钮。我正在尝试将谷歌地图添加到其中一个按钮,但我不是很成功。我正在关注本教程但不是直接实施谷歌地图MainActivity
我将它们添加到按下按钮时启动的片段中。一切都很好。当我按下按钮时,地图会加载并且它们会按预期工作。当我按下主页按钮返回MainActivity
它工作得很好,但是当我想再次加载地图时,它给了我debugging error: Class File Editor: Source not found
这是代码GoogleMaps
分段:
public class GoogleMaps extends Fragment{
private GoogleMap googleMap;
double latitude = 46.514249;
double longitude = 15.080183;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View myFragmentView = inflater.inflate(R.layout.maps_layout, container, false);
try {
// Loading map
initilizeMap();
} catch (Exception e) {
Log.e("ERROR", "ERROR IN CODE: " + e.toString());
e.printStackTrace();
}
return myFragmentView;
}
private void initilizeMap() {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)));
CameraPosition cameraPosition = new CameraPosition.Builder().target(
new LatLng(latitude, longitude)).zoom(12).build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getActivity(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
}
任何帮助将不胜感激。
编辑:
如果我说得不够具体的话。当我加载时它起作用fragment
一次(第一次),但当我尝试再次加载(第二次)时它不起作用。
编辑v2:
我实际上自己找到了解决方案。
我所要做的就是添加OnDestroyView
method:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
不管怎么说,还是要谢谢你。