有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从另一个按钮操作调用onmaplick()操作

我想通过按下按钮并向其发送所需参数来触发地图上的onmaclick()操作。每当触摸地图时,将运行以下命令:

    @Override
    public void onMapClick(LatLng point) {

        // animate camera to centre on touched position
        mMap.animateCamera(CameraUpdateFactory.newLatLng(point));

        // Adding new latlng point to the array list
        markerPoints.add(point);

        // Creating MarkerOptions object
        MarkerOptions marker = new MarkerOptions();

        // Sets the location for the marker to the touched point
        marker.position(point);

    }

我希望此按钮复制与触摸屏幕相同的操作,但我手动输入一个值:

    mButtonCompleteLoop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            onMapClick(markerPoints.get(0));

        }
    });

出现一个错误,说明无法解析onMapClick()。有什么方法可以做到这一点吗?还是最好将onmaplick()代码提取到一个单独的方法中,然后从这两个方法中调用该方法


共 (1) 个答案

  1. # 1 楼答案

    如果不查看活动/片段的整个代码,很难猜测原因

    也许您将映射侦听器设置为匿名类
    如果是,而不是:

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
        @Override
        public void onMapClick(LatLng latLng) {
            //this 
        }
    });
    

    你应该让你的活动实现谷歌地图。OnMapClickListener并按如下方式设置listener

    mMap.setOnMapClickListener(this);
    

    然后你可以在任何地方调用onmaclick