无法解析方法getMap():AppCompatActivity

时间:2016-07-11 11:11:11

标签: android android-activity

我的活动课程如下:

public class Location {
private String  longitude,latitude;
public String getLongitude() {
    return longitude;
}

public void setLongitude(String  longitude) {
    this.longitude = longitude;
}

public String getLatitude() {
    return latitude;
}

public void setLatitude(String latitude) {
    this.latitude = latitude;
}

@Override
public String toString() {
    return "Location{" +
            "longitude=" + longitude +
            ", latitude=" + latitude +
            '}';
}

public Location(String longitude, String latitude) {
    this.longitude = longitude;
    this.latitude = latitude;
}

Lint在我的代码中显示如下错误:" 无法解析方法getMap();"

代码片段是:`

@SuppressWarnings("deprecation")
public class AddPostActivity extends AppCompatActivity {  

我尝试将 MapFragment fm = (MapFragment)getFragmentManager() .findFragmentById(R.id.maps_fragment); map = fm.getMap(); map.setMapType(GoogleMap.MAP_TYPE_NORMAL); mUiSettings = map.getUiSettings(); mUiSettings.setCompassEnabled(true); mUiSettings.setMyLocationButtonEnabled(false);` 替换为getMap();

getMapAsync();

但是在红线上公开(第二类)

如何在我的第一个公共类中添加 public class AddPostActivity extends FragmentActivity implements OnMapReadyCallback { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_post); MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.maps_fragment); fm.getMapAsync(this); } public void onMapReady(GoogleMap map) { map.setMapType(GoogleMap.MAP_TYPE_NORMAL); mUiSettings = map.getUiSettings(); mUiSettings.setCompassEnabled(true); mUiSettings.setMyLocationButtonEnabled(false); } } 的代码,以便它显示为重复的公共类,而不是出错?

XML

OnMapReadyCallback

1 个答案:

答案 0 :(得分:1)

无法找到问题所在。让你试试这些。

如果实现OnMapReadyCallback,则需要覆盖onMapReady函数。

public class GetLocationActivity extends AppCompatActivity implements OnMapReadyCallback {

GoogleMap gMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
....
...
.
gMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.gmap)).getMap();
..
..

}

@Override
public void onMapReady(GoogleMap googleMap) {
 // your logic here
}

}

<强>编辑:

从代码中删除这些行。 [完全删除你的第二堂课]

然后让你第一堂课来实现onMapReadyCallback。

然后将必要的变量和逻辑复制到您的第一个类本身。

//从代码中删除以下行。

public class AddPostActivity extends AddPostActivity implements OnMapReadyCallback {

    private UiSettings mUiSettings;
    private GoogleMap map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_post_activity);

        MapFragment fm = (MapFragment) getFragmentManager().findFragmentById(R.id.maps_fragment);
        fm.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {

        map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
        mUiSettings = map.getUiSettings();

        mUiSettings.setCompassEnabled(true);
        mUiSettings.setMyLocationButtonEnabled(false);
    }
    }

而是在您的第一个类本身中实现相同的逻辑。让我知道查询