2016-04-22 4 views
-1

Ich habe meine neue Anwendung basierend auf Google Maps Aktivität. Ich setze meinen onMapLongClickListener, um so viele neue Marker hinzuzufügen, wie der Benutzer möchte. Aber es gibt meine Frage: Ich möchte ein ListView auf der Oberseite meiner Karte setzen, um dem Benutzer zu erlauben, zwischen verschiedenen Markertypen zu wählen. Wie kann ich ein ListView-Objekt festlegen, das angezeigt wird, wenn ich einen Punkt auf der Karte halte und nach der Auswahl eines Elements wieder ausgeblendet wird?Wie kann ich eine listView über meine Kartenaktivität setzen?

Hier ist meine App-Code, wenn es Ihnen helfen kann, mir einige Lösungen zu geben!

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> 

Dank für Sie unterstützen !!

Antwort

0

drücken, um einen Dialog, um die Liste von Markern wie

@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(); 
    } 

Hoffnung zu bekommen dieses Sie

+0

ich Ihre Lösung ein wenig zu modifizieren benötigt hilft, aber es gibt mir den richtigen Weg, mein Problem zu lösen, Also danke Kumpel !! Ich schätze wirklich deinen Beitrag! – Davide