如何在内部函数中使用类变量?

时间:2019-07-09 14:30:20

标签: java android interface android-location nested-function

我想从内部函数内部使用类成员

我尝试将变量设置为全局变量,但出现错误“预期的类或接口”

@Override
    public void onMapReady(GoogleMap googleMap) {
        // Add a marker in current location,
        // and move the map's camera to the same location.
        //Location currentLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
        FusedLocationProviderClient fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},
                    MY_PERMISSIONS_REQUEST_ACCESS_LOCATION);
        }else {
            mFusedLocationClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
                @Override
                public void onSuccess(Location location) {
                    wayLongitude = location.getLongitude();
                    wayLatitude = location.getLatitude();
                    /*LatLng sydney = new LatLng(wayLatitude, wayLongitude);
                    googleMap.addMarker(new MarkerOptions().position(sydney)
                            .title("Marker in Sydney"));
                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));*/
                }
            });
        }

我希望能够在“ OnSuccess”功能内执行“ googleMap.addMarker”。 我该怎么办?

1 个答案:

答案 0 :(得分:3)

您需要将googleMap参数声明为final:

public void onMapReady(final GoogleMap googleMap) {
    //...
}