我正在开发一款带有顶部菜单和一些按钮的应用程序。我试图在其中一个按钮中添加谷歌地图,但并不是很成功。我按照这个教程的步骤进行操作,但与其将谷歌地图直接实现到
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
方法:
public void onDestroyView()
{
super.onDestroyView();
Fragment fragment = (getFragmentManager().findFragmentById(R.id.map));
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
无论如何,感谢您。
onDestroyView()
方法,但是没有起作用...如果你能帮我就太好了。 - Satyen Udeshi