java - onMarkerClick 使用 switch Case

标签 java android google-maps google-maps-markers

我想使用谷歌地图制作标记应用程序,但是。我对使用 switch Case 的 onMarkerClick 有疑问,我正在使用数组将标记添加到我的应用程序,当标记 OnCLick 时,他可以为每个标记调用不同的 Activity 。我对此有疑问。我如何将 onMarkerClick 与我的应用程序的 switch case 一起使用。 ???请帮忙 。这是我的代码:

public static final String TAG = markerbanyak.TAG;
    final LatLng CENTER = new LatLng(43.661049, -79.400917);


    class Data {
        public Data(float lng, float lat, String title, String snippet, String icon) {
            super();
            this.lat = (float)lat;
            this.lng = (float)lng;
            this.title = title;
            this.snippet = snippet;
            this.icon = icon;
        }
        float lat;
        float lng;
        String title;
        String snippet;
        String icon;
    }

    Data[] data = {
            new Data(-79.400917f,43.661049f, "New New College Res",
                    "Residence building (new concrete high-rise)", "R.drawable.mr_kun"),
            new Data(-79.394524f,43.655796f, "Baldwin Street",
                    "Here be many good restaurants!", "R.drawable.mr_kun"),
            new Data(-79.402206f,43.657688f, "College St",
                    "Lots of discount computer stores if you forgot a cable or need to buy hardware.", "R.drawable.mr_kun"),    
            new Data(-79.390381f,43.659878f, "Queens Park Subway",
                    "Quickest way to the north-south (Yonge-University-Spadina) subway/metro line", "R.drawable.mr_kun"),
            new Data(-79.403732f,43.666801f, "Spadina Subway",
                    "Quickest way to the east-west (Bloor-Danforth) subway/metro line", "R.drawable.mr_kun"),
            new Data(-79.399696f,43.667873f, "St George Subway back door",
                    "Token-only admittance, else use Spadina or Bedford entrances!", "R.drawable.mr_kun"),
            new Data(-79.384163f,43.655083f, "Eaton Centre (megamall)",
                    "One of the largest indoor shopping centres in eastern Canada. Runs from Dundas to Queen.", "R.drawable.mr_kun"),
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.peta);

        SupportMapFragment supportMapFragment = (SupportMapFragment)
        getSupportFragmentManager().findFragmentById(R.id.map);

                // Getting a reference to the map
        mMap = supportMapFragment.getMap();

        Marker kuningan = mMap.addMarker(new MarkerOptions()
        .position(KUNINGAN)
        .title("Kuningan")
        .snippet("Kuningan ASRI")
        .icon(BitmapDescriptorFactory
        .fromResource(R.drawable.mr_kun)));

        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(KUNINGAN, 2));

        // Zoom in, animating the camera.
        mMap.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);



        }

     public void wisata(){

            if (mMap==null) {
                Log.d(TAG, "Map Fragment Not Found or no Map in it!!");
                return;
            }

            for (Data d : data) {
                LatLng location = new LatLng(d.lat, d.lng);
                Marker wisata =mMap.addMarker(new MarkerOptions()
                      .position(location)
                      .title(d.title)
                      .snippet(d.snippet)
                      .icon(BitmapDescriptorFactory.fromResource(R.drawable.mr_wis)));

                // Let the user see indoor maps where available.
                mMap.setIndoorEnabled(true);

                // Enable my-location stuff
                mMap.setMyLocationEnabled(true);

                // Move the "camera" (view position) to our center point.
                mMap.moveCamera(CameraUpdateFactory.newLatLng(CENTER));
                        // Then animate the markers while the map is drawing,
                // since you can't combine motion and zoom setting!
                        final int zoom = 14;
                        mMap.animateCamera(CameraUpdateFactory.zoomTo(zoom), 2000, null);

                mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

                    @Override
                    public boolean onMarkerClick(Marker v) {
                        // TODO Auto-generated method stub
                        //(PLEASE HELP ME !!! :))

                        return false;
                    }
                });
            }

            }

最佳答案

                @Override
                public boolean onMarkerClick(Marker v) {
                    // TODO Auto-generated method stub
                    //(PLEASE HELP ME !!! :))
                 if(v.getTitle().contains("New New College Res")){
                    // do if marker has this title
                    }else if(v.getTitle().contains("Baldwin Street")){
                    // do if marker has this title
                    } // and so on
                    return false;
                }
            });

关于java - onMarkerClick 使用 switch Case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16205161/

相关文章:

java - HIbernate InvalidDataAccessApiUsageException - 只读模式

android - 使用 Android TaskManager 将 Activity 置于最前面

java - Android 添加 map 标记错误 : java. lang.IllegalStateException:不在主线程上

ios - MapKit 是否提供高程数据?

java - 我正在尝试为标签打印机 QL-720NW 进行无线打印,但出现错误 NOT_MATCH_ADDRESS?

java - Spring - 添加一个低优先级的多线程服务(不影响生产性能)

android - 清理 Android repo

java - 数据库查询以获取范围内的记录

java - 字符数组的arraylist java

java - 初始化类实例?