当前位置: 首页 > 知识库问答 >
问题:

点击infowindow如何打开特定的布局?-googlemap api 2

诸彬郁
2023-03-14
import java.util.HashMap;

import com.actionbarsherlock.app.SherlockFragment;
import com.google.android.gms.maps.CameraUpdate;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.InfoWindowAdapter;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.SupportMapFragment;
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 android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;


public class Fragment17 extends SherlockFragment {

//create hashmap
private HashMap<Marker, Integer> hash = new HashMap<Marker, Integer>();


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment17, container, false);
    return rootView;
}

//
@Override
public void onViewCreated(View v, Bundle savedInstanceState){
    super.onViewCreated(v, savedInstanceState);

final LatLng Initial = new LatLng(-34.673009, -58.474111);

final LatLng FADU = new LatLng(-34.542163, -58.443716);

final LatLng UNO = new LatLng(-34.524924, -58.576421);
final LatLng DOS = new LatLng(-34.755415, -58.577794);


GoogleMap googlemap;

        googlemap  = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map17)).getMap();

        googlemap.setMyLocationEnabled(true);
        googlemap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        CameraUpdate update = CameraUpdateFactory.newLatLngZoom(Initial, 10);
        googlemap.animateCamera(update);

        //modify
        Marker marker1 = googlemap.addMarker(new MarkerOptions().position(FADU).title("FADU").snippet("Facultad de Arquitectura, Diseño y Urbanismo")
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
        hash.put(marker1, R.drawable.logo);

        Marker marker2 = googlemap.addMarker(new MarkerOptions().position(UNO).title("TEOREMA").snippet("san matin 1245"));
        hash.put(marker2, R.drawable.teorema);

        Marker marker3 = googlemap.addMarker(new MarkerOptions().position(DOS).title("El Mundo del Acrilico").snippet("san benito 2144"));
        hash.put(marker3, R.drawable.mundoacrilico);

        googlemap.setOnInfoWindowClickListener(new OnInfoWindowClickListener(){

            @Override
            public void onInfoWindowClick(Marker arg0) {
                // TODO Auto-generated method stub

            }
        });



        googlemap.setInfoWindowAdapter(new InfoWindowAdapter() {

             @Override
             public View getInfoContents(Marker marker) {

             View v = getLayoutInflater(null).inflate(R.layout.infowindow, null);

             TextView titulo = (TextView) v.findViewById(R.id.titulo);
             TextView direccion = (TextView) v.findViewById(R.id.direccion);
             ImageView imagen = ((ImageView)v.findViewById(R.id.imagen));

             titulo.setText(marker.getTitle());
             direccion.setText(marker.getSnippet());

             if(hash.get(marker) != null)
                imagen.setImageDrawable(getResources().getDrawable(hash.get(marker)));

             return v;

            }
                //..
             @Override
                public View getInfoWindow(Marker marker) {
                    // TODO Auto-generated method stub
                    return null;
                }
             });
            }
//...

这是我的应用程序,当我点击标记时,会出现相应的infowindow:

因此,当我单击infowindow时,我希望调用一个新的布局,

我明白你在说什么,但我知道当你有很多不同的信息应该调用不同的类时,应该什么时候申请。

还有一个hashmap来组织infowindow的内容,不知道这是否会使方法setOnInfoWindowClickListener变得复杂

暂时还没有答案

 类似资料:
  • 问题内容: 我想在Fastlane快照中使用Xcode UI测试来制作Cordova应用程序的屏幕截图。基本上,由于我的整个应用程序只是一个Web视图,因此所有Xcode UI测试帮助程序方法都变得无关紧要,我只想点击特定的点,例如应该在该点处进行点击。 那可能很简单,但是我不知道该怎么做。 谢谢。 问题答案: 您可以使用API轻击特定点。不幸的是,您不能只说出“ tap 10,10”以引用像素坐

  • 我正在尝试做一个活动,显示你所在的谷歌地图标记的信息。 null

  • 我在通知中收到了一个包名,我想在点击通知后打开play store中的特定应用程序。如何继续呢?

  • 当两次单击倒计时时,我希望它打开全屏活动。 上面的代码在编译代码时会出现以下错误。 使用提供的参数无法调用以下函数:public constructor Intent(p0:Context!,p1:Class 我怎样才能解决这个问题?谢谢

  • 嗨,我有问题,如何实现点击标记的信息窗口?问题是我在地图上有很多标记,如果单击信息窗口,每个标记都有另一个活动<代码>在此处输入代码 以下是示例 标记1----- 我尝试了很多代码但没有解决

  • > firebaseService类 公共类FirebaseMessagingService扩展了com.google.firebase.messaging。FirebaseMessagingService{private static int count=0;@Override public void onMessageReceived(@NonNull RemoteMessage Remote