2015-06-05 4 views
0

Как пользователь может вводить текст при создании маркера, чтобы маркер получил имя, которое вводит пользователь? Как AlertDialog? Вот код маркера создания:API Google Maps API, обозначающий маркеры?

googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

     @Override 
     public void onMapLongClick(LatLng point) { 

      // TODO Auto-generated method stub 
      googleMap.addMarker(new MarkerOptions() 
        .position(point) 
        .title("Hello world")); 


     } 

ответ

0

вы можете использовать этот код

googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

      @Override 
      public void onMapLongClick(final LatLng point) { 

       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Title"); 

       // Set up the input 
       final EditText input = new EditText(this); 
       builder.setView(input); 

       // Set up the buttons 
       builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          String text = input.getText().toString(); 
          googleMap.addMarker(new MarkerOptions() 
          .position(point) 
          .title(text)); 
       } 
       }); 
      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel(); 
      } 
      }); 
      builder.show();  
} 
+0

Я попытался это, но он говорит: «Строитель/TextEdit не может быть применен к анонимным com.google.android. gms.maps.GoogleMap.OnMapLongClickListener "и что" point "необходимо объявить окончательным –

+0

Решил первый бит, но все же говорит, что« точка »должна быть окончательной. –

+0

Я не компилировал код. конечно, он должен быть объявлен ** окончательным **. Просто добавьте окончательный модификатор infront точки. – settaratici

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