【问题标题】:Google maps marker info failed (ANDROID)谷歌地图标记信息失败(ANDROID)
【发布时间】:2016-09-22 17:02:49
【问题描述】:

在我的标记上,我添加了一个setOnMarkerClickListener。所以这是我的createMethod

protected void createMarker(String driversName, int totalPass, String busNum, double latitude, double longitude, String location) {
    Marker marker = mMap.addMarker(new MarkerOptions()
            .position(new LatLng(latitude, longitude))
            .title(location)
            .snippet("Driver's Name: " + driversName + "\nTotal Passenger: " + totalPass + "\nBus number: " + busNum));
    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener()
    {
        @Override
        public boolean onMarkerClick(com.google.android.gms.maps.model.Marker marker)
        {
            Toast.makeText(MainMapActivity.this, "hey!", Toast.LENGTH_SHORT).show();
            dialogInfo();
            return true;
        }
    });
}

dialogInfo()

public void dialogInfo() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Current Location: "+location);
    builder.setMessage("Bus number: "+busNum+"\nDriver's name: "+name+"\nCurrent total passenger: "+totalPassenger)
            .setCancelable(false)
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

对话框的值是一样的

【问题讨论】:

  • 嘿@tin 你能详细解释一下吗??
  • @mayurpatel 哦,对不起。我的错。我在 gMaps 上绘制了多个标记。每次我点击那个特定的标记时,busNumnametotalPassenger 都是一样的。我想获取该特定标记的特定值。
  • 您想在地图视图上设置自定义标记,例如链接:stackoverflow.com/questions/38560091/…
  • 耶。我想要地图上的自定义标记 :)
  • 我在下面提供解决方案,在上面的链接上提供更多信息,我必须提供解决方案。请仔细阅读

标签: android google-maps google-maps-markers


【解决方案1】:

已编辑

您的代码中几乎没有问题,我可以看到您的意图(请在提问之前更具体)。

protected void createMarker(GoogleMap mMap,String driversName, int totalPass, String busNum, double latitude, double longitude, String location) {
        Marker marker = mMap.addMarker(new MarkerOptions()
                .position(new LatLng(latitude, longitude))
                .title(location)
                .snippet("Driver's Name: " + driversName + "\nTotal Passenger: " + totalPass + "\nBus number: " + busNum));
                }

在方法外分配onClickListener

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener()
        {
            @Override
            public boolean onMarkerClick(com.google.android.gms.maps.model.Marker marker)
            {
                Toast.makeText(MainMapActivity.this, "hey!", Toast.LENGTH_SHORT).show();
                dialogInfo(marker); //get value from marker
                return true;
            }
        });

dialogInfo()

public void dialogInfo(Marker marker) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(marker.getTitle());
        builder.setMessage(marker.getSnippet())
                .setCancelable(false)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
        AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

【讨论】:

  • 对不起..是我的错。
猜你喜欢
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多