2016-04-22 3 views
-1

У меня есть новое приложение, основанное на действиях Google Maps. Я установил мой onMapLongClickListener, чтобы добавить столько новых маркеров, сколько захочет пользователь. Но есть мой вопрос: я хочу установить ListView в верхней части моей карты, чтобы позволить пользователю выбирать между разными типами маркеров. Как я могу установить ListView, который появляется, когда я удерживаю точку на карте, а затем исчезаю после выбора одного из своих элементов?Как я могу поместить списокView поверх моей активности карты?

Вот мой код приложения, если он может помочь вам в предоставлении мне некоторых решений!

MapsActivity.java

package com.example.mancu_000.onclickmarkerlistener; 

import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.widget.Toast; 

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.OnMapLongClickListener; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.Marker; 
import com.google.android.gms.maps.model.MarkerOptions; 

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, OnMapLongClickListener { 

    private GoogleMap map; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 

    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     map = googleMap; 

     map.setOnMapLongClickListener(this); 
     map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
      @Override 
      public boolean onMarkerClick(Marker marker) { 
       Toast.makeText(MapsActivity.this, "OnMarkerListener", Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
     }); 

     LatLng home = new LatLng(44.42913, 8.84072); 
     map.addMarker(new MarkerOptions().position(home).title("Home, bitches!")); 
     map.moveCamera(CameraUpdateFactory.newLatLng(home)); 

     CameraUpdate center = CameraUpdateFactory.newLatLng(home); 
     map.moveCamera(center); 

     CameraUpdate zoom = CameraUpdateFactory.zoomTo(17); 
     map.animateCamera(zoom); 
    } 

    @Override 
    public void onMapLongClick(LatLng location) { 
     // Here I'm supposed to implements thee code of the ListView on the top of the map 
    } 
} 

activity_maps.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.mancu_000.onclickmarkerlistener.MapsActivity" > 

    <fragment xmlns:map="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scrollbars="vertical" 
     class="com.google.android.gms.maps.SupportMapFragment"/> 

</FrameLayout> 

Спасибо вам за поддержку !!

ответ

0

нажать диалог, чтобы получить список маркеров, как

@Override 
    public void onMapLongClick(LatLng location) { 
     AlertDialog.Builder builderSingle = new AlertDialog.Builder(context); 
     builderSingle.setIcon(R.drawable.title_icon_resource); 
     builderSingle.setTitle("Select One Name:-"); 

     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>();//create adapter with your markers list 

     builderSingle.setNegativeButton();//to exit directly if you want 

     builderSingle.setAdapter(arrayAdapter,new DialogInterface.OnClickListener());//set your adapter and listener 
     builderSingle.show(); 
    } 

надеюсь, что это поможет вам

+0

мне нужно изменить немного ваше решение, но это дает мне правильный путь, чтобы решить мою проблему, так спасибо приятелю !! Я очень ценю ваш вклад! – Davide

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