2017-02-07 9 views
1

Привет Я работаю с картами google и создаю собственное название на маркерах, которые у меня есть, мне нужно знать, когда выбран маркер, как получить информацию о названии, becouse мне нужно открыть фрагмент с этой информацией, letme вставить вам код, который я получил:Получить пользовательские данные маркера заголовка google maps

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     map =googleMap; 
     map.getUiSettings().setZoomControlsEnabled(true); 


     for (Taxi taxi : taxis) { 
      u= taxi.getUbicacionActual(); 
      LatLng ubicacion= new LatLng(Double.parseDouble(u.getLatitud()), Double.parseDouble(u.getLongitud())); 


      map.moveCamera(CameraUpdateFactory.newLatLngZoom(ubicacion,15)); 

      MarkerOptions punto= new MarkerOptions().position(ubicacion); 
      map.addMarker(punto); 

      map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { 
       @Override 
       public View getInfoWindow(Marker marker) { 

        return null; 
       } 

       @Override 
       public View getInfoContents(Marker marker) { 
        View v = getLayoutInflater().inflate(R.layout.info_title, null); 


        TextView info1 = (TextView) v.findViewById(R.id.info1); 
        TextView info2 = (TextView) v.findViewById(R.id.info2); 
        TextView info3 = (TextView) v.findViewById(R.id.info3); 

        info1.setText("Fecha: " + u.getFecha()); 
        info3.setText("Longitud: " + u.getLongitud().toString()); 

        info2.setText("Ubicacion: "+obtenerDireccion(u.getLatitud(),u.getLongitud())); 

        return v; 
       } 
      }); 


     } 
     map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
      @Override 
      public void onInfoWindowClick(Marker marker) { 

       Fragment fragmento; 
       fragmento = new HistorialFragment(); 
       getSupportFragmentManager().beginTransaction() 
         .replace(R.id.content_principal, fragmento) 
         .commit(); 


      } 
     }); 

о методе OnInfoWindowClickListener где я назвал новый фрагмент Мне нужно отправить данные из пользовательского заголовка, может кто-то пожалуйста, помогите мне с этим?

ответ

1

попробовать это:

Добавьте свой метод setOnInfoWindowClickListener внутри getInfoContents(Marker marker) :

map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { 
     @Override 
     public View getInfoWindow(Marker marker) { 

      return null; 
     } 

     @Override 
     public View getInfoContents(Marker marker) { 
      View v = getLayoutInflater().inflate(R.layout.info_title, null); 


      final TextView info1 = (TextView) v.findViewById(R.id.info1); 
      TextView info2 = (TextView) v.findViewById(R.id.info2); 
      TextView info3 = (TextView) v.findViewById(R.id.info3); 

      info1.setText("Fecha: " + u.getFecha()); 
      info3.setText("Longitud: " + u.getLongitud().toString()); 

      info2.setText("Ubicacion: "+obtenerDireccion(u.getLatitud(),u.getLongitud())); 

      map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
       public void onInfoWindowClick(Marker marker) 
       { 
        Fragment fragmento; 
        fragmento = new HistorialFragment(); 
        Bundle bundle = new Bundle(); 
        bundle.putString("title",info1.getText().toString()); 
        fragmento.setArguments(bundle); 
        getSupportFragmentManager().beginTransaction() 
          .replace(R.id.content_principal, fragmento) 
          .commit(); 
       } 
      }); 

      return v; 
     } 
    }); 
+0

большое спасибо, ребята, теперь он работает :) –

0

Если установить название Marker делает

MarkerOptions punto= new MarkerOptions() 
    .position(ubicacion) 
    .title("Fecha: " + u.getFecha()); // set the marker title 
map.addMarker(punto); 

Вы можете получить его по методу onInfoWindowClick делать:

map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
    @Override 
    public void onInfoWindowClick(Marker marker) { 
     String title = marker.getTitle(); // Retrieve the title 
    } 
}); 
+0

no Я didnt, я создаю пользовательские окна с 3 текстовыми полями, и мне нужна информация одного из них. Если вы проверите код, мне нужна информация: info1.setText («Fecha:» + u.getFecha()); –

+0

Я отредактировал свой ответ. Вы все равно можете установить заголовок маркера и использовать его на свой 'onInfoWindowClick' – antonio

+0

, но информация о марке, которую он создал по методу: public View getInfoContents (маркерный маркер), im не используя .title, потому что у меня есть собственный заголовок окна Посмотреть. –

 Смежные вопросы

  • Нет связанных вопросов^_^