变量点必须是最终的

时间:2015-06-05 19:58:53

标签: android google-maps maps

我收到的错误是“从内部类访问变量'点',需要声明为final”。错误发生在最后一个“点”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));
                    }
                });
            }
        });
    }
});
}

3 个答案:

答案 0 :(得分:1)

将点声明为public void onMapLongClick(LatLng p) { final LatLng point = p;

final

答案 1 :(得分:0)

您需要完全按照其说法执行操作并制作Project point

final

答案 2 :(得分:0)

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

变化:

@Override
public void onMapLongClick(LatLng point) {

为:

@Override
public void onMapLongClick(final LatLng point) {