Java 在按钮逻辑中尝试捕捉

Java 在按钮逻辑中尝试捕捉,java,android,android-maps-v2,Java,Android,Android Maps V2,我编写了一些代码,在单击时在当前位置上设置一个标记。不幸的是,当没有给出当前位置并单击按钮时,整个应用程序崩溃。错误状态为: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“double java.lang.double.doubleValue()” 有没有办法在按钮内实现try-catch豁免 以下是按钮的点击说明: markerBtn.setOnClickListener(new View.OnClickListener() {

我编写了一些代码,在单击时在当前位置上设置一个标记。不幸的是,当没有给出当前位置并单击按钮时,整个应用程序崩溃。错误状态为: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“double java.lang.double.doubleValue()”

有没有办法在按钮内实现try-catch豁免

以下是按钮的点击说明:

    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");

        }
    });

在访问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();
               }


            }
        });

这里已经有两个答案了。但我想告诉你正确的方法。 如果他还没有选择位置,只需返回带有适当消息的代码即可

奖金建议:避免使用
尝试拦截
。它们用于意外错误。 就像尝试连接一个不存在的套接字

   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");

            });

当然有办法。你试过了吗?你到底在执行它的哪一部分?您的myLocation可能为空。您需要在代码中检查null,比如if(myLocation!=null){}
   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");

            });