android:没有获得关于标记点击的信息

Posted

技术标签:

【中文标题】android:没有获得关于标记点击的信息【英文标题】:android: not getting info on marker click 【发布时间】:2020-11-10 12:27:01 【问题描述】:

我在数据库中有四个条目,我正在使用改造来获取所有数据。 API 工作正常我正在获取所有必要的数据。我想在标记点击时显示用户姓名、地址、号码和技能(来自数据库)并将它们设置在自定义警报对话框中。

问题

当我点击任何标记时,我只会得到最后一个条目。每个标记上的平均值infoWindowClickListener 我每次只得到相同的姓名、地址、号码和技能。 我也使用标记保存索引,但我不知道如何使用该索引。

我想要什么?

每个标记都应该显示自己的信息。 任何人都可以帮助我在 onInfoWindowClickListener 方法中应该做什么来获取与每个标记相关的确切信息。 有什么不明白的欢迎随时提问。

MapFragment.java:

 public void onMapReady(final GoogleMap mMap) 
        mGoogleMap = mMap;
        mLocationRequest = new LocationRequest();
        mLocationRequest.setInterval(0);
        mLocationRequest.setFastestInterval(0);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        fetchLastLocation();
        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        ApiInterface apiInterface2 = ApiClient.getClient().create(ApiInterface.class);
        Call<AllDataResponse> call2 = apiInterface2.allLabours("showAds");
        call2.enqueue(new Callback<AllDataResponse>() 
            @Override
            public void onResponse(Call<AllDataResponse> call, Response<AllDataResponse> response) 
                if (response.body() != null) 

                    if (response.body().isError_bol()) 
                        String errosr = response.body().getError_message();
                        Toast.makeText(getActivity(), errosr, Toast.LENGTH_SHORT).show();
                     else 
                        labourDataAlls = response.body().getAll_labours();

                        if (labourDataAlls != null) 
                            latLngData.addAll(labourDataAlls);
                            Log.v("TAaG", "LOGS" + latLngData.size());

                            for (int i = 0; i < latLngData.size(); i++) 
                                double lat = Double.parseDouble(latLngData.get(i).getLb_latitude());
                                double lng = Double.parseDouble(latLngData.get(i).getLb_longitude());
                                Str_lb_name = latLngData.get(i).getLb_name();
                                Str_lb_phone = latLngData.get(i).getLb_phone();
                                Str_lb_address = latLngData.get(i).getLb_address();
                                Str_lb_skill = latLngData.get(i).getLb_skills();
                               drawMarker(new LatLng(lat, lng), i);
  

                            Log.d("setr", String.valueOf(list));
                            Toast.makeText(getActivity(), "No Error", Toast.LENGTH_SHORT).show();
                         else 
                            Toast.makeText(getActivity(), "Unknown Error Occurs", Toast.LENGTH_SHORT).show();
                        

                    

                
            

            @Override
            public void onFailure(Call<AllDataResponse> call, Throwable t) 
                Toast.makeText(getContext(), "" + t.toString(), Toast.LENGTH_SHORT).show();
            
        );
        mMap.setOnInfoWindowClickListener(this);
        mMap.setMyLocationEnabled(true);
    
    
        private void drawMarker(final LatLng point , final int index)
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(point).title(labourDataAlls.get(index).getLb_name()+index);
            mGoogleMap.addMarker(markerOptions);
        

@Override
    public void onInfoWindowClick(Marker marker) 


【问题讨论】:

【参考方案1】:

setTag(index) 同时向 googleMap 添加标记

private void drawMarker(final LatLng point , final int index)
    private Marker marker;
    marker = mGoogleMap.addMarker(new MarkerOptions()
            .position(point)
            .title(labourDataAlls.get(index).getLb_name()+index);
    marker.setTag(index);


@Override
public void onInfoWindowClick(Marker marker) 
    int index = (int)(marker.getTag());
    //Use index get Value from labourDataAlls

参考https://***.com/a/40962580/12676247

【讨论】:

可以根据这个指标在toast中显示labour_skill吗?在 OnWindowInfoClickListener 中

以上是关于android:没有获得关于标记点击的信息的主要内容,如果未能解决你的问题,请参考以下文章

安卓。谷歌地图API实现标记点击

如何在 android 中获得 ClusterManager 点击和 ClusterManager 项目点击

Android。点击标记后的Google map API工具

Android自定义可标记日历

Android怎么实现点击按钮获取当前位置的信息,没有地图的情况下。

无法单击标记 - 谷歌地图集群Android,无法在谷歌地图中显示信息窗口