我编写了一些代码,在单击当前位置时设置一个标记。不幸的是,当没有给定当前位置并单击按钮时,整个应用程序就会崩溃。错误状态: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'double java.lang.Double.doubleValue()‘
是否有办法在按钮内实现试捕豁免?
以下是按钮的单击指令:
markerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LatLng myCurrentLocation = new LatLng(myCurrentLatitude, myCurrentLongitude);
marker = mMap.addMarker(new MarkerOptions().position(myLocation).title("New Marker"));
markerBtn.setTag("yo");
}
});发布于 2017-11-25 13:42:36
这里已经有两个答案了。但我想告诉你正确的方法。如果他还没有选择位置,只需使用适当的消息return代码即可。
奖金建议:避免在这些方面使用try catch block。它们用于处理意外错误。比如尝试连接一个不存在的套接字。
markerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// check if user has not set location yet.
if (myCurrentLatitude == null | myCurrentLongitude == null){
Toast.makeText(EventViewActivity.this, "Please choose your location first", Toast.LENGTH_SHORT).show();
return;
}
LatLng myCurrentLocation = new LatLng(myCurrentLatitude, myCurrentLongitude);
marker = mMap.addMarker(new MarkerOptions().position(myLocation).title("New Marker"));
markerBtn.setTag("yo");
});发布于 2017-11-25 00:11:05
markerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
LatLng myCurrentLocation = new LatLng(myCurrentLatitude, myCurrentLongitude);
marker = mMap.addMarker(new MarkerOptions().position(myLocation).title("New Marker"));
markerBtn.setTag("yo");
}catch(Exception e){
System.out.println("No current location set");
}
});发布于 2017-11-25 00:12:04
在访问lat/lng值之前尝试这样做。
markerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try{
if((myCurrentLatitude!=null && myCurrentLongitude!=null) &&(myCurrentLatitude!=0.0 && myCurrentLongitude!=0.0))
{
LatLng myCurrentLocation = new LatLng(myCurrentLatitude, myCurrentLongitude);
marker = mMap.addMarker(new MarkerOptions().position(myLocation).title("New Marker"));
markerBtn.setTag("yo");
}
}
catch(Exception e)
{
e.getMessage();
}
}
});https://stackoverflow.com/questions/47481404
复制相似问题