我的地图显示了一些标记,这些标记是根据纬度和经度动态生成的。
我正在使用一个自定义信息窗口,当单击标记时显示一个 ImageView 和一个 TextView。
map.setInfoWindowAdapter(new InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return v;
}
@Override
public View getInfoContents(Marker marker) {
v = getLayoutInflater().inflate(R.layout.info_window_layout,
null);
Bitmap myBitmap;
try {
URL url = new URL(
"URL here");
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.connect();
connection.setReadTimeout(120000);
InputStream input = connection.getInputStream();
myBitmap = BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
return null;
}
ImageView imgPhoto = (ImageView) v
.findViewById(R.id.imageView1);
tvPropertyID = (TextView) v.findViewById(R.id.textView1);
imgPhoto.setImageBitmap(myBitmap);
return v;
}
});
map.setOnMarkerClickListener(this);
and Dynamically placing markers like this,
protected void placeMarker(final List<PropertiesList> PropertyStub) {
for (int i = 0; i <= PropertyStub.size() - 1; i++) {
final LatLng MeanLatLng = new LatLng(PropertyStub.get(i).Latitude,
PropertyStub.get(i).Longitude);
if (!visibleMarkers.containsKey(PropertyStub.get(i).PropertyID)) {
visibleMarkers
.put(PropertyStub.get(i).PropertyID,
this.map.addMarker(new MarkerOptions()
.position(MeanLatLng)
.title("Property")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.pink_outside_marker))));
}
}
}
在这里,我使用 hashmap 来跟踪用户单击的标记,并根据位置和 PropertyID 等字段相应地显示图像和文本。
onMarkerClick,
View v;
public boolean onMarkerClick(Marker marker) {
Log.d("", "On marker click");
Log.d("", "VisibleMarkerText: " + visibleMarkers.get(marker));
tvPropertyID = (TextView) v.findViewById(R.id.textView1);
tvPropertyID.setText("" + visibleMarkers.get(marker));
return true;
}
我在 map.setInfoWindowAdpater() 中实例化“v”。
在这一行“tvPropertyID = (TextView) v.findViewById(R.id.textView1);” 它给出了空指针异常。不仅如此,我将“visibleMarkers.get(marker)”值设为空。
这是我的日志猫,
06-18 12:39:26.812: E/AndroidRuntime(19018): FATAL EXCEPTION: main
06-18 12:39:26.812: E/AndroidRuntime(19018): java.lang.NullPointerException
06-18 12:39:26.812: E/AndroidRuntime(19018): at com.bu.PropertySearchTypes.MapSearch.onMarkerClick(MapSearch.java:230)
06-18 12:39:26.812: E/AndroidRuntime(19018): at com.google.android.gms.maps.GoogleMap$4.f(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at com.google.android.gms.internal.bp$a.onTransact(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at android.os.Binder.transact(Binder.java:279)
06-18 12:39:26.812: E/AndroidRuntime(19018): at bds.a(SourceFile:84)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.aj.bk.a(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.as.d.a(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.as.p.c(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.as.o.a(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.as.bo.c(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.as.bk.onSingleTapConfirmed(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.bs.g.onSingleTapConfirmed(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at maps.bs.i.handleMessage(Unknown Source)
06-18 12:39:26.812: E/AndroidRuntime(19018): at android.os.Handler.dispatchMessage(Handler.java:99)
06-18 12:39:26.812: E/AndroidRuntime(19018): at android.os.Looper.loop(Looper.java:130)
06-18 12:39:26.812: E/AndroidRuntime(19018): at android.app.ActivityThread.main(ActivityThread.java:3687)
06-18 12:39:26.812: E/AndroidRuntime(19018): at java.lang.reflect.Method.invokeNative(Native Method)
06-18 12:39:26.812: E/AndroidRuntime(19018): at java.lang.reflect.Method.invoke(Method.java:507)
06-18 12:39:26.812: E/AndroidRuntime(19018): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
06-18 12:39:26.812: E/AndroidRuntime(19018): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
06-18 12:39:26.812: E/AndroidRuntime(19018): at dalvik.system.NativeStart.main(Native Method)
请任何人纠正我。我不知道除此之外。任何帮助表示赞赏!