java - 单击标记时的警报对话框布局

标签 java android google-maps google-api

我搜索了如何在点击 google maps api v3 上的标记时显示警告对话框布局。我在 stackoverflow 上找到了一个代码,但对我来说它不起作用。 这是我的 map 类

package com.myapp;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import android.graphics.Color;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolylineOptions;


public class MyClass extends FragmentActivity implements OnMarkerClickListener {
    private GoogleMap googleMap;
    private int mapType = GoogleMap.MAP_TYPE_NORMAL;
    private Marker marker1;
    ImageButton imageButton1;
    @SuppressWarnings("deprecation")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
        imageButton1 = (ImageButton) findViewById(R.id.imageButton1); 

        FragmentManager fragmentManager = getFragmentManager();
        MapFragment mapFragment =  (MapFragment) fragmentManager.findFragmentById(R.id.map);
        googleMap = mapFragment.getMap();

     // Enabling MyLocation Layer of Google Map
        googleMap.setMyLocationEnabled(true);
     // Getting LocationManager object from System Service LOCATION_SERVICE
        LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
       googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

                LatLng sLatLng12 = new LatLng(34.0522, 118.2437);
                marker1 = googleMap.addMarker(new MarkerOptions()
                .position(sLatLng12)
                .title("Marker title")
                .snippet("Marker snippet")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)));





    public boolean onMarkerClick(Marker marker1) {
        if(this.marker1.equals(marker1)){
        AlertDialog.Builder alertadd = new AlertDialog.Builder(MyClass.this);
        LayoutInflater factory = LayoutInflater.from(MyClass.this);
        final View view = factory.inflate(R.layout.dialog_layout, null);
        alertadd.setView(view);
        alertadd.show();
      }
      return false;
    }


}

map 可以正常打开并显示我的标记。但是当我点击时,它没有显示任何警告对话框。 提前致谢!

最佳答案

如果 if block 中的代码运行,该方法应返回 true。如果该方法返回 false,则不会将点击事件传递给您已注册的监听器。

public boolean onMarkerClick(Marker marker1) {
        if(this.marker1.equals(marker1)){
        AlertDialog.Builder alertadd = new AlertDialog.Builder(MyClass.this);
        LayoutInflater factory = LayoutInflater.from(MyClass.this);
        final View view = factory.inflate(R.layout.dialog_layout, null);
        alertadd.setView(view);
        alertadd.show();
        return true;
      }
      return false;
    }

关于java - 单击标记时的警报对话框布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675640/

相关文章:

android - 带健康设备的串口转USB安卓应用

Android更新通知文本导致内存占用

html - InfoWindow内部的音频播放器(Google map )

android - 无法解决Fragment中的getMapAsync问题

java - jd gui在win10上打不开

java - 如何刷新 CDIView 以反射(reflect)在另一个 CDIView 中所做的更改?

java - 将 JLabel 放置在 JPanel 上的特定 x、y 坐标处

java - 在终止应用程序之前执行强制清理操作

android - 使用 ADT r14 不断恢复 R.java

javascript - 我可以检索更高分辨率的 map 图 block 吗?