Google 地图标记信息失败 (ANDROID)
Google maps marker info failed (ANDROID)
在我的标记上我添加了一个 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();
}
对话框的值相同
已编辑
你的代码没有什么问题,我可以看出你的意图(提问前请更具体)。
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();
}
在我的标记上我添加了一个 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();
}
对话框的值相同
已编辑
你的代码没有什么问题,我可以看出你的意图(提问前请更具体)。
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();
}