首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:将标记设置为不可点击

Android:将标记设置为不可点击
EN

Stack Overflow用户
提问于 2015-12-28 11:47:55
回答 3查看 2.4K关注 0票数 3

嗨,我在做标记,就像

代码语言:javascript
运行
复制
Marker thisUserMarker = map.addMarker(new MarkerOptions()
           .position(new LatLng(CURRENT_LAT, CURRENT_LNG))
           .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_marker_current_location)));

在此之后,根据CURRENT_LAT和CURRENT_LNG的说法,我想使标记不可点击。有可能这样做吗

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-28 11:55:54

我使用了这个解决方法,单击marker时返回true

代码语言:javascript
运行
复制
getMap().setOnMarkerClickListener(new OnMarkerClickListener() {

    public boolean onMarkerClick(Marker marker) {
        return true;
    }
});

其他的可能性可以实现implements OnMarkerClickListener,在您的onMarkerClick()中,可以将它与您不希望单击的标记进行比较,而不想做任何事情。

代码语言:javascript
运行
复制
@Override
public boolean onMarkerClick(final Marker marker) {

    if (marker.equals(myMarker)) 
    {
        //Do nothing
    }
}

您也可以检查这个问题:google-maps-api-v2-how-to-make-markers-clickable

票数 4
EN

Stack Overflow用户

发布于 2015-12-28 11:54:43

像这样设置可点击。

代码语言:javascript
运行
复制
     MarkerOptions marker=new MarkerOptions().position(resto).title(getAddress(28.6200, 77.2100));
    marker.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
    map.addMarker(marker);

   map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            if(marker.getTitle().equals(getAddress(28.6200, 77.2100))){
                Log.e("Delhi","Delhi");
                Log.e("Destance",""+distance(resto.latitude,resto.longitude,Delhi1.latitude,Delhi1.longitude,"M"));

            }else if(marker.getTitle().equals("Marker in Delhi1")){
                Log.e("Delhi1","Delhi1");

            }
                return false;

        }
    });

GetAddress metgod()

代码语言:javascript
运行
复制
   public String getAddress(double lat, double lng) {
    Geocoder geocoder = new Geocoder(MapsActivity.this, Locale.getDefault());
    String Address=" ";
    Log.e("ADDRESS","ADDRESS");
    try {
        List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
        Address obj = addresses.get(0);
        String add = obj.getAddressLine(0);
        Address= obj.getAddressLine(0);

        add = add + "\n" + obj.getCountryName();
        add = add + "\n" + obj.getCountryCode();
        add = add + "\n" + obj.getAdminArea();
        add = add + "\n" + obj.getPostalCode();
        add = add + "\n" + obj.getSubAdminArea();
        add = add + "\n" + obj.getLocality();
        add = add + "\n" + obj.getSubThoroughfare();

        Log.e("IGA", "Address" + add);


    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }
    return Address;
}
票数 1
EN

Stack Overflow用户

发布于 2015-12-28 11:59:27

也许你可以覆盖ClickListener。我不确定lat和lng值是否保存在标记arg0事件中。

代码语言:javascript
运行
复制
mMap.setOnMarkerClickListener(new OnMarkerClickListener()
                {
                    @Override
                    public boolean onMarkerClick(Marker arg0) {
                        return true;
                    }
                });  

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34492955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档