gpt4 book ai didi

android - Lat Lng 值中的 NumberFormatException

转载 作者:行者123 更新时间:2023-11-29 16:02:59 25 4
gpt4 key购买 nike

我正在获取 Activity 中的纬度和经度值,我得到的这些都是字符串值,我必须在此处覆盖 double 并使用此纬度和经度值我想在 map 上显示位置。但是在将 String 转换为 double 时,它​​在我的 logcat 中显示错误 NumberFormatException。但是我使用 Double.parseDouble("");

进行了转换

我的代码:

@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub

//locationManger.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
_googleMap.clear();
ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String,
String>>)
getIntent().getSerializableExtra("arrayList");
if(arl.size()!=0){
for(int j = 0;j<arl.size();j++){


Log.e("SIZE", ""+arl.size());
Log.e(" NEW LAT",arl.get(j).get("lat").toString());
Log.e(" NEW LONG",arl.get(j).get("lng").toString());
Log.e(" NEW ADDRESS",arl.get(j).get("address").toString());
Log.e(" NEW CTIME",arl.get(j).get("ctime").toString());
String lat =arl.get(j).get("lat").toString();
String lng =arl.get(j).get("lng").toString();
double Hlat = Double.parseDouble(lat);
double Hlong= Double.parseDouble(lng);

LatLng latLng =new LatLng(Hlat, Hlong);

Marker perth = _googleMap.addMarker(new MarkerOptions()

.position(latLng)

.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.flat(true));

}

}
else{

if(location!=null){
double latitude = location.getLatitude();
double langitude = location.getLongitude();


latLongDetails.setLat(latitude);
latLongDetails.setLongi(langitude);

Log.e("lat",""+ latLongDetails.getLat());
Log.e("long", ""+latLongDetails.getLongi());

LatLng latlang = new LatLng(latitude, langitude);
//LatLngBounds curScreen =
_googleMap.getProjection().getVisibleRegion().latLngBounds;
//curScreen.contains(latlang);
myPosition = new LatLng(latitude, langitude);

_googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition));
_googleMap.addMarker(new
MarkerOptions().position(myPosition).title("start"));

}
}

错误日志:

    03-04 14:52:01.765: E/AndroidRuntime(24634): FATAL EXCEPTION: main
03-04 14:52:01.765: E/AndroidRuntime(24634): java.lang.NumberFormatException:
03-04 14:52:01.765: E/AndroidRuntime(24634): at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267)
03-04 14:52:01.765: E/AndroidRuntime(24634): at java.lang.Double.parseDouble(Double.java:318)
03-04 14:52:01.765: E/AndroidRuntime(24634): at com.technowellServices.locationfind.GetLatLongForTPActivity.onLocationChanged(GetLatLongForTPActivity.java:161)
03-04 14:52:01.765: E/AndroidRuntime(24634): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:227)
03-04 14:52:01.765: E/AndroidRuntime(24634): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:160)
03-04 14:52:01.765: E/AndroidRuntime(24634): at android.location.L
ocationManager$ListenerTransport$1.handleMessage(LocationManager.java:176)

如何避免这种情况?

最佳答案

您必须检查您的 latlng 值是否为 NULL 或不是:

if (!lat.trim().equals("") && !lng.trim().equals("") ) 
{
double Hlat = Double.parseDouble(lat);
double Hlong= Double.parseDouble(lng);
}

Exception 被抛出,因为你的 latlng 值发现 NULL 或空白,你转换那个 NULL 值转换为 Double,所以。

关于android - Lat Lng 值中的 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22167986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com