我尝试在滑动视图中的片段中创建地图,但是使用此代码我在logcat中有错误,这是代码:
public class Mapa extends Fragment {
private static final double MARKER_LATITUDE = 42.027325;
private static final double MARKER_LONGITUDE = -8.640842;
GoogleMap map;
private FragmentActivity myContext;
public Mapa() {
}
/**
* Returns a new instance of this fragment for the given section
* number.
*/
public static Mapa newInstance() {
Mapa fragment = new Mapa();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View android = inflater.inflate(R.layout.mapa, container, false);
final LatLng position = new LatLng(MARKER_LATITUDE, MARKER_LONGITUDE);
// camera position
map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener()
{
@Override
public void onCameraChange(CameraPosition arg0)
{
CameraUpdate cu = CameraUpdateFactory.newLatLngZoom(position, 17);
map.animateCamera(cu);
map.setOnCameraChangeListener(null);
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
});
return android;
}
@Override
public void onAttach(Activity activity) {
myContext=(FragmentActivity) activity;
super.onAttach(activity);
}
@Override
public void onDestroyView() {
super.onDestroyView();
Fragment f = getFragmentManager().findFragmentById(R.id.mapFragment);
if (f != null)
getFragmentManager().beginTransaction().remove(f).commit();
}
}
这是logcat错误:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void com.google.android.gms.maps.GoogleMap.setOnCameraChangeListener(com.google.android.gms.maps.GoogleMap $ OnCameraChangeListener)' at greetrack.estg.ipvc.greentrack.Mapa.onCreateView(Mapa.java:49)
这是我第一次使用地图的应用程序,也许有些事情是错误的
答案 0 :(得分:0)
你没有设置地图,它是空的。所以空引用。
Map = ((MapFragment) getFragmentManager().findFragmentById(
R.id.mapView)).getMap();
是一种方式,或者可能跟随谷歌推荐。这是一个地图片段xml。
我输入的xml文件不显示https://developers.google.com/maps/documentation/android/start#get_an_android_certificate_and_the_google_maps_api_key这里是它的linkk。 在MainActivity.java中添加以下代码。
package com.example.mapdemo;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}