您还可以如何使 class 和 Google 映射中的变量不为空?
How else can you make a variable in a class with Google Maps not a null?
我有一个 class 和地图,从 Firebase
中以 String
格式获取坐标和 title
,然后将它们放入 double
,但不能将它们放到新的 LatLng
中?我明白了,那个问题是googleMap = null
,但是重新尝试了所有的方法来解决它。在这个版本的代码中,nullexception
消失了,但是 marker
是空的。请帮助。这是我应用程序的最后一个问题..
public class Map_activity extends FragmentActivity implements OnMapReadyCallback{
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_activity);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
String value = getIntent().getExtras().getString("qwerty");
String xlat = getIntent().getExtras().getString("lat");
String xlon = getIntent().getExtras().getString("lon");
xlat.split(",");
xlon.split(",");
String [] latlong = {xlat, xlon};
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);
if (googleMap != null){
LatLng location = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(location).title(value));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(location));}
}
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
}
}
onCreate
在 onMapReady
之前被调用。如果地图还没有准备好,那么唯一的值 googleMap
可以是 null
.
唯一的解决办法是将需要 googleMap
的代码从 onCreate
中移出并放在其他地方。
我有一个 class 和地图,从 Firebase
中以 String
格式获取坐标和 title
,然后将它们放入 double
,但不能将它们放到新的 LatLng
中?我明白了,那个问题是googleMap = null
,但是重新尝试了所有的方法来解决它。在这个版本的代码中,nullexception
消失了,但是 marker
是空的。请帮助。这是我应用程序的最后一个问题..
public class Map_activity extends FragmentActivity implements OnMapReadyCallback{
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map_activity);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
String value = getIntent().getExtras().getString("qwerty");
String xlat = getIntent().getExtras().getString("lat");
String xlon = getIntent().getExtras().getString("lon");
xlat.split(",");
xlon.split(",");
String [] latlong = {xlat, xlon};
double latitude = Double.parseDouble(latlong[0]);
double longitude = Double.parseDouble(latlong[1]);
if (googleMap != null){
LatLng location = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(location).title(value));
googleMap.moveCamera(CameraUpdateFactory.newLatLng(location));}
}
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
}
}
onCreate
在 onMapReady
之前被调用。如果地图还没有准备好,那么唯一的值 googleMap
可以是 null
.
唯一的解决办法是将需要 googleMap
的代码从 onCreate
中移出并放在其他地方。