gpt4 book ai didi

java - 将 JSON 数据解析为 map 标记,所有标记显示相同的信息,我该如何解决这个问题?

转载 作者:行者123 更新时间:2023-12-02 06:22:00 27 4
gpt4 key购买 nike

在这方面需要一些帮助。

我有一些商店的 JSON 和商店信息,例如它们的名称、ID 和位置。我将其解析为 ArrayList。

通过 AsyncTask,我将它们绘制在 map 上。目前,有 4 家商店。我重写了 onClick 标记以按照我想要的方式显示数据。我遇到的问题是,虽然标记根据经度和纬度位于正确的位置,但其他信息却不然。

当我点击一个标记时,所有标记上都会列出相同的商店名称。它只显示我的 JSON 中的最后一家商店。所有数据都来 self 的 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 和 .snippet)并且成功了!它显示了正确的信息!那么有没有办法获得自定义的 onClick 呢?看来 setOnMarkerListener 导致了这个问题。

最佳答案

这是因为您在同一个 gMap 对象上多次调用 setOnMarkerClickListener()。这样最后一次调用生效就不会奇怪了,会使用最后一次店铺的信息。您应该只设置一次OnMarkerClickListener。当然,然后您必须在其 onMarkerClick() 方法中识别您的标记,以决定哪个商店被点击。

关于java - 将 JSON 数据解析为 map 标记,所有标记显示相同的信息,我该如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com