如何将Iterates数据传递给setOnInfoWindowClickListener

时间:2013-05-28 13:21:37

标签: android google-maps-android-api-2

我有一个来自JSONArray对象的迭代数据,如下所示:

try{
        for (int i = 0; i < arrResponse.length(); ++i){
            JSONObject objResponse = arrResponse.getJSONObject(i);
            Integer idShop = objResponse.getInt("ID");
            String name = objResponse.getString("Name");
            String address = objResponse.getString("Address");
            Double slat = objResponse.getDouble("lat");
            Double slong = objResponse.getDouble("long");
            LatLng shopLocation = new LatLng(slat, slong);}}

我使用迭代数据(idShop,名称,地址等)使用以下代码在我的地图上标记兴趣点:

map.addMarker(new MarkerOptions()
                    .position(shopLocation)
                    .title(idShop+" "+name)
                    .snippet(address)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_marker_shop)));

然后我将一个点击监听器放入由该标记创建的每个对象中:

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
                @Override
                public void onInfoWindowClick(Marker marker) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(OrderActivity.this, Cart1Activity.class);
                    // intent.putExtra("IDShop", ""+idShop);
                    startActivity(intent);
                }
            });

当我点击标记然后将其传递给意图时,如何获取“idShop”数据?我在setOnInfoWindowClickListener:

上使用此代码
intent.putExtra("IDShop", ""+idShop);

但它没有获得真实的数据。

1 个答案:

答案 0 :(得分:0)

使用上面的代码,您只需从标记中获取标题,将其拆分为空格字符,并在结果数组中获取第一个元素。这是你的身份。

int id = Integer.parseInt(marker.getTitle().split(" ")[0]);

对象不太方向......