0

Je peux afficher tous les éléments de la suggestion de saisie semi-automatique, mais lorsque je clique sur un élément, les coordonnées de longitude et de latitude associées à l'élément doivent être tracées sur la carte. Je ne sais pas comment réaliser. `S'il vous plaît aidez ici.Marqueur de tracé sur la carte à partir de l'élément de saisie semi-automatique cliqué

J'ai collé ma méthode ci-dessous

private void searchAutocomplete(){ 
    DatabaseReference database = FirebaseDatabase.getInstance().getReference(); 
    //Create a new ArrayAdapter with your context and the simple layout for the dropdown menu provided by Android 
    final ArrayAdapter<String> autoComplete = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1); 
    //Child the root before all the push() keys are found and add a ValueEventListener() 
    database.child("wr").child("clubs").addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      //Basically, this says "For each DataSnapshot *Data* in dataSnapshot, do what's inside the method. 
      for (DataSnapshot suggestionSnapshot : dataSnapshot.getChildren()){ 
       //Get the suggestion by childing the key of the string you want to get. 
       String suggestion = suggestionSnapshot.child("name1").getValue(String.class); 
       //Add the retrieved string to the list 
       autoComplete.add(suggestion); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
    AutoCompleteTextView ACTV= (AutoCompleteTextView)findViewById(R.id.autocompleteView); 
    ACTV.setAdapter(autoComplete); 
    ACTV.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     } 
    }); 
} 

Répondre

0

Vous devez mettre à jour final ArrayAdapter<String> autoComplete à la place quelque chose comme final ArrayAdapter<Place> autoComplete puis mettre en œuvre quelque chose comme:

public class Lieu {

private float latitude; 
private float longitude; 
private String name; 

// implement your constructor 
// implement your accessors 

}

Et puis de votre onClick vous receviez le Place, et vous pouvez simplement faire quelque chose comme place.getLatitude() et place.getLongitude.

C'est comme ça que je l'implémenterais.

+0

Je reçois des données de Firebase API Google Place – jonathan

0

Vous devez simplement écouter les événements click et ajouter un Marker lorsqu'un élément est cliqué.

Exemple:

tv.setOnItemClickListener((adapterView, view, pos, id) -> { 
    mGoogleMap.addMarker(new MarkerOptions() 
      .position(mDataList.get(pos).getLocation())); 
}); 

Vous devez vous assurer que votre carte google a été chargé de cours.

+0

Ils utilisent Firebase pas le widget PlaceAutocomplete. – CodyEngel

+0

Qu'ils utilisent Firebase n'est pas pertinent à la question, et je n'ai fait aucune mention de Place Autocomplete. – Orbit

+0

pouvez-vous expliquer un peu je veux dire où la mDataList arrive ou comment l'initialiser? – jonathan