Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON解析为ArrayList。如何让它在onPostExecute中为多个地图标记重复数据?_Java_Android_Json_Google Maps_Android Asynctask - Fatal编程技术网

Java JSON解析为ArrayList。如何让它在onPostExecute中为多个地图标记重复数据?

Java JSON解析为ArrayList。如何让它在onPostExecute中为多个地图标记重复数据?,java,android,json,google-maps,android-asynctask,Java,Android,Json,Google Maps,Android Asynctask,标题需要更多的解释。所以我有很多JSON,我已经解析并放入一个ArrayList中。JSON是一个商店数组。JSONObject是商店的详细信息,如名称、地址、纬度、经度等 现在在onPostExecute中,我想在地图上绘制这些标记,并在用户单击标记时调用商店信息。我尽可能只画一家商店作为标记。随着时间的推移,我将拥有的店铺数量将不断变化,现在有4家 在onPostExecute中,我有以下代码: @Override protected void onPostExecute(ArrayList

标题需要更多的解释。所以我有很多JSON,我已经解析并放入一个ArrayList中。JSON是一个商店数组。JSONObject是商店的详细信息,如名称、地址、纬度、经度等

现在在onPostExecute中,我想在地图上绘制这些标记,并在用户单击标记时调用商店信息。我尽可能只画一家商店作为标记。随着时间的推移,我将拥有的店铺数量将不断变化,现在有4家

在onPostExecute中,我有以下代码:

@Override
protected void onPostExecute(ArrayList<ShopArray> shopArray) {
    super.onPostExecute(shopArray);

    double lat = shopArray.get(0).geo_lat;
    double lng = shopArray.get(0).geo_lng;

    LatLng test = new LatLng(lat, lng);

    gMap.addMarker(new MarkerOptions()
        .position(test));

}
@覆盖
受保护的void onPostExecute(ArrayList shopArray){
onPostExecute(shopArray);
double-lat=shopArray.get(0).geo_-lat;
双液化天然气=shopArray.get(0).geo_液化天然气;
LatLng试验=新LatLng(lat,lng);
gMap.addMarker(新的MarkerOptions()
.位置(测试);
}
到目前为止,我的JSON已经列出了4个商店,但它只会在标记上绘制一个商店。有没有办法把所有的纬度和经度都称出来,然后把所有的地图标记都显示出来?如果你需要我发布我的JSON,让我现在,我会更新我的帖子。这是向用户展示它的最后一个障碍

如果您能给我一些建议,告诉我哪里出了问题,或者哪些地方可以做得更好,我将不胜感激。提前谢谢

@覆盖
@Override
protected void onPostExecute(ArrayList<ShopArray> shopArray) {
    super.onPostExecute(shopArray);

    for(ShopArray shopArrayObj : shopArray)
    { 
    double lat = shopArrayObj.geo_lat;
    double lng = shopArrayObj.geo_lng;

    LatLng test = new LatLng(lat, lng);

    gMap.addMarker(new MarkerOptions()
        .position(test));
    }

}
受保护的void onPostExecute(ArrayList shopArray){ onPostExecute(shopArray); for(ShopArray shopArrayObj:ShopArray) { 双lat=shopArrayObj.geo_lat; 双液化天然气=shopArrayObj.geo_液化天然气; LatLng试验=新LatLng(lat,lng); gMap.addMarker(新的MarkerOptions() .位置(测试); } }
谢谢!所以,当我设置标记onClick时,只要我从shopArrayObj调用数据,我就可以获得其余的信息了?所有的标记都出现了。接受答案和+1。您需要将所需信息设置到标记的labelContentCool,谢谢。我将尝试一些自定义的方法,您可以点击标记打开一个包含所有信息的alertdialog。有几件事是这样的。