变量点需要是final

Variable point needs to be final

我收到一个错误 "Variable 'point' is accessed from inner class, needs to be declared final"。错误在最后"point"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));
                    }
                });
            }
        });
    }
});
}

你需要完全按照它说的去做,然后 point final

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

声明点为final

@Override
public void onMapLongClick(final LatLng point) {

由于您没有更改点的值,因此可以将其声明为最终值。然后你可以在你的内部访问它 class.

变化:

@Override
public void onMapLongClick(LatLng point) {

至:

@Override
public void onMapLongClick(final LatLng point) {