我遇到了创建自己的CustomInfoWindow的问题,却不知道为什么会出现异常。
这是我的简单CustomInfoWindow类:
public class CustomInfoWindow implements InfoWindowAdapter {
private LayoutInflater mInflater;
public CustomInfoWindow(LayoutInflater inflater) {
this.mInflater=inflater;
}
@Override
public View getInfoContents(Marker marker) {
View popup = mInflater.inflate(R.layout.info_window_layout, null);
TextView tv=(TextView)popup.findViewById(R.id.title);
tv.setText(marker.getTitle());
tv=(TextView)popup.findViewById(R.id.address);
tv.setText(marker.getSnippet());
return popup;
}
@Override
public View getInfoWindow(Marker marker) {
View popup = mInflater.inflate(R.layout.info_window_layout, null);
TextView tv=(TextView)popup.findViewById(R.id.title);
tv.setText(marker.getTitle());
tv=(TextView)popup.findViewById(R.id.address);
tv.setText(marker.getSnippet());
return popup;
}
我在这里设置它。(MainActivity)
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
Statics.LAT_TLV, Statics.LON_TLV), 13));
CustomInfoWindow customInfoWindow = new CustomInfoWindow(getLayoutInflater());
mMap.setInfoWindowAdapter(customInfoWindow);
我没有实现onMarkerClick方法。 地图加载正确,标记也正常显示(大约40个),但是当我点击其中一个标记时,出现以下错误:
01-10 13:15:24.321: E/AndroidRuntime(21162): FATAL EXCEPTION: main
01-10 13:15:24.321: E/AndroidRuntime(21162): java.lang.NullPointerException
01-10 13:15:24.321: E/AndroidRuntime(21162): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at android.view.View.measure(View.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.y.i(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.y.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.w.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.bd.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.y.bw.b(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.y.bw.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.dh.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.n.c(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.dw.a(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.bd.c(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.a.dq.onSingleTapConfirmed(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.e.v.onSingleTapConfirmed(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at maps.e.j.handleMessage(Unknown Source)
01-10 13:15:24.321: E/AndroidRuntime(21162): at android.os.Handler.dispatchMessage(Handler.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at android.os.Looper.loop(Looper.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at android.app.ActivityThread.main(ActivityThread.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at java.lang.reflect.Method.invokeNative(Native Method)
01-10 13:15:24.321: E/AndroidRuntime(21162): at java.lang.reflect.Method.invoke(Method.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
01-10 13:15:24.321: E/AndroidRuntime(21162): at dalvik.system.NativeStart.main(Native Method)
希望有人能够帮助我,并且如果有一个非常简单的示例来创建自己的信息视图,那将是非常棒的。非常感谢。Udi