添加 Onmarkerclicklistener 后崩溃
Got crash after adding Onmarkerclicklistener
如标题所示,如果我添加 OnMarkerClickListener 或 OnInfoWindowClickListener,我的应用程序会崩溃。请帮我。我更新了代码
这是我的代码,抱歉我是新手:|
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(MapsActivity.this);
btnBeHost = (Button)findViewById(R.id.btnBeHost);
requestQueue = Volley.newRequestQueue(this);
//be a host btn when clicked
...
//Welcome
...
//get coordinates of motels and show on map
//latitude request
...
//longitude request
...
RequestQueue queue = Volley.newRequestQueue(MapsActivity.this);
queue.add(latReq);
queue.add(lngReq);
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(MapsActivity.this,"zzzz",Toast.LENGTH_LONG).show();
return false;
}
});
}
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
//set my location enabled
...
}
您正试图在 onCreate() 中调用 mMap 的方法,但在您在 onMapReady() 中分配 mMap 之前,mMap 将为空。
您将不得不等到 在 分配它之后(可能稍后在 onMap 准备好或在您 运行 随后的某些事情中)调用诸如设置的方法up 事件监听器。
如标题所示,如果我添加 OnMarkerClickListener 或 OnInfoWindowClickListener,我的应用程序会崩溃。请帮我。我更新了代码 这是我的代码,抱歉我是新手:|
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(MapsActivity.this);
btnBeHost = (Button)findViewById(R.id.btnBeHost);
requestQueue = Volley.newRequestQueue(this);
//be a host btn when clicked
...
//Welcome
...
//get coordinates of motels and show on map
//latitude request
...
//longitude request
...
RequestQueue queue = Volley.newRequestQueue(MapsActivity.this);
queue.add(latReq);
queue.add(lngReq);
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
Toast.makeText(MapsActivity.this,"zzzz",Toast.LENGTH_LONG).show();
return false;
}
});
}
@TargetApi(Build.VERSION_CODES.M)
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.getUiSettings().setZoomControlsEnabled(true);
//set my location enabled
... }
您正试图在 onCreate() 中调用 mMap 的方法,但在您在 onMapReady() 中分配 mMap 之前,mMap 将为空。
您将不得不等到 在 分配它之后(可能稍后在 onMap 准备好或在您 运行 随后的某些事情中)调用诸如设置的方法up 事件监听器。