【问题标题】:Android Google Maps, multiple intentsAndroid 谷歌地图,多种意图
【发布时间】:2016-08-12 12:16:35
【问题描述】:

我有一些带有信息窗口的谷歌地图标记 (10)。通过单击信息窗口,应该会启动一个新活动,并且应该通过 intent.put extra() 传输一个值: 我的问题是最后一个标记的值总是转移到下一个活动,尽管我点击另一个信息窗口,在这种情况下它是 101010。 我的代码:

 Marker marker1 = map.addMarker(new MarkerOptions()
                    .title(itemList.get(1))
                    .icon(BitmapDescriptorFactory.fromResource(getDrawableId(imagename)))
                    .position(new LatLng(Double.parseDouble(itemList.get(2)), Double.parseDouble(itemList.get(3))))

            );



            System.out.println("MoID=" + monsterid1);
            map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
                @Override
                public void onInfoWindowClick(Marker marker1) {
                    Intent intent1 = new Intent(showmap.this, MonsterDetail.class);
                    intent1.putExtra("monsterid", monsterid); //value i want to transfer to next activity e.g "111"
                    startActivity(intent1);


                }
            });


Marker marker2 = map.addMarker(new MarkerOptions()
                    .title(itemList.get(5))
                    .icon(BitmapDescriptorFactory.fromResource(getDrawableId(imagename)))
                    .position(new LatLng(Double.parseDouble(itemList.get(6)), Double.parseDouble(itemList.get(7))))

            );



            System.out.println("MoID=" + monsterid1);
            map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
                @Override
                public void onInfoWindowClick(Marker marker2) {
                    Intent intent2 = new Intent(showmap.this, MonsterDetail.class);
                    intent2.putExtra("monsterid", monsterid2); //value i want to transfer to next activity e.g. "222"
                    startActivity(intent2);


                }
            });

Marker marker10 = map.addMarker(new MarkerOptions()
...
...
...
 intent10.putExtra("monsterid", monsterid10); //value i want to transfer to next activity e.g. "101010"

【问题讨论】:

    标签: android google-maps android-intent


    【解决方案1】:

    OnInfoWindowClickListener 用于地图,而不是标记。因此,您当前的代码是:

    • 创建OnInfoWindowClickListener

    • 创建另一个OnInfoWindowClickListener,丢弃前一个

    • 等等

    致电setOnInfoWindowClickListener()一次。在onInfoWindowClick() 中,您会收到一个Marker,它代表用户点击的内容。使用该Marker,确定要放入Intent 的额外值。例如,IIRC,Marker 有一个 getId() 方法,所以你可以有一个 HashMap<String, String> 将标记 ID 映射到额外的值,在 onInfoWindowClick() 中,你查找点击标记的值。

    【讨论】:

    • 非常感谢!问题已解决:)
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多