【发布时间】:2014-01-22 05:45:05
【问题描述】:
需要一些帮助。
我有一些商店和商店信息的 JSON,例如他们的名称、ID 和位置。我把它解析成一个ArrayList。
通过 AsyncTask,我将它们绘制在地图上。目前,这是4家商店。我覆盖了标记 onClick 以按照我想要的方式显示数据。我遇到的问题是,尽管标记根据经度和纬度位于正确的位置,但其他信息却不是。
当我点击一个标记时,所有这些标记上都列出了相同的商店名称。它只显示我的 JSON 中的最后一家商店。所有数据都来自我 JSON 中的最后一家商店。这是我的 onPostExecute() 代码:
@Override
protected void onPostExecute(ArrayList<ShopArray> shopArray) {
super.onPostExecute(shopArray);
for (ShopArray shopArrayOb : shopArray) {
double lat = shopArrayOb.geo_lat;
double lng = shopArrayOb.geo_lng;
final String barName = shopArrayOb.bar_name;
LatLng shopLocations = new LatLng(lat, lng);
MarkerOptions marker = new MarkerOptions()
.position(shopLocations)
gMap.addMarker(marker);
gMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
testText.setText(barName);
return false;
}
});
}
我真的不知道如何解决这个问题。我只希望它显示标记的正确名称以及其他数据。它一直在我的 JSON 中显示来自最后一家商店的数据,仅此而已。如果您需要查看我的更多代码,请告诉我,我会更新我的帖子。
非常感谢您对此的帮助,在此先感谢!
编辑:我刚刚使用默认标记 onClick 进行了测试。 (.title 和 .sn-p),它奏效了!它显示了正确的信息! 那么有没有办法获得自定义的 onClick 呢?看起来是 setOnMarkerListener 引起了问题。
【问题讨论】:
标签: java android json google-maps android-asynctask