变量点需要是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) {
我收到一个错误 "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) {