2015-06-05 3 views
1

Я получаю сообщение об ошибке, в котором говорится, что «Переменная точка» доступна из внутреннего класса, должна быть объявлена ​​окончательной ». Ошибка находится на последней "точки" on.positionПеременная точка должна быть окончательной

googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

    @Override 
    public void onMapLongClick(LatLng point) { 
     googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 

      @Override 
      public void onMapLongClick(LatLng point) { 
       AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
       builder.setTitle("Title"); 

       // Set up the input 
       final EditText input = new EditText(MainActivity.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)); 
        } 
       }); 
      } 
     }); 
    } 
}); 
} 

ответ

1

объявить точку, как final

@Override 
public void onMapLongClick(final LatLng point) { 
+0

бог я чувствую себя глупо, напечатал "LatLng конечная точка", и я просто не мог понять LMAO –

+0

вы можете – Blackbelt

0

Вы должны делать то, что он говорит и делает pointfinal

public void onMapLongClick(LatLng p) { 
    final LatLng point = p; 
0

С вы не изменяете значение точки, которую вы можете объявить окончательной. Затем вы можете получить доступ к нему в своем внутреннем классе.

Изменение:

@Override 
public void onMapLongClick(LatLng point) { 

к:

@Override 
public void onMapLongClick(final LatLng point) { 
Смежные вопросы

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