gpt4 book ai didi

java - 如何将对象传递给 Google Maps Android API V2 Marker?

转载 作者:太空狗 更新时间:2023-10-29 15:45:41 28 4
gpt4 key购买 nike

我有一个 API 女巫返回一些 JSON 数据。使用GSON我将 JSON 对象转换为 Java 对象的库。

我有一个由对象填充的列表,每个对象都包含特定信息(id、名称、long、lat、status、street 等)。我在 map 上添加了标记,它工作正常......但我想在用户单击其中一个 markers 时显示其他信息,即状态、街道和其他信息。 (每个标记应该显示不同的信息)。

因此,我需要将一个对象(或数据)传递给另一个将显示特定标记的全部信息的 Activity 。你有什么建议?

最佳答案

您可以创建一个HashMap来管理Marker和相关信息之间的映射。

HashMap<Marker, Data> hashMap = new HashMap<Marker, Data>();

注意:Data 是包含您所有信息(id、name、long、lat、status、street 等)的类。

当您在 map 上添加您的标记时,您还需要将它们添加到 map 中(以及相关信息)。例如,如果您的数据在列表中:

for(Data data : list){
Marker marker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(data.lat, data.long));
hashMap.put(marker, data);
}

然后,假设你想使用与标记关联的信息,当你点击信息窗口时,你可以这样做:

mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Data data = hashMap.get(marker);
if(data!=null){
Intent intent = new Intent(mContext, YourActivity.class);
intent.putExtra(YourActivity.EXTRA_MESSAGE, data);
mContext.startActivity(intent);
}
}
});

注意:数据要实现Parcelable ,或者你可以只传递 id,如果从 json 中检索到的信息是持久化的,例如在数据库中,那么在 Activity 收到 id 之后,它可以从数据库中获取所有其他信息。

关于java - 如何将对象传递给 Google Maps Android API V2 Marker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272387/

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