use*_*853 1 string android google-maps-android-api-2
我需要将String值转换为LatLng值,以便在Android应用中的GoogleMaps片段中使用.字符串值可能以"-45.654765,65.432892"的形式出现.
我尝试了两种不同的方法,但都导致了错误.首先,我尝试使用split()并将结果放入String [],然后使用parseDouble()访问每个,如下所示:
String[] geo = GEO.split(",");
double lati = Double.parseDouble(geo[0]);
double lngi = Double.parseDouble(geo[1]);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)
这产生了一个ArrayIndexOutOfBoundsException由double lati = Double.parseDouble(geo[0]);.我不确定为什么.
我也尝试过使用StringTokenizer,如下所示:
StringTokenizer tokens = new StringTokenizer(GEO, ",");
String lat = tokens.nextToken();
String lng = tokens.nextToken();
double lati = Double.parseDouble(lat);
double lngi = Double.parseDouble(lng);
LOCATION = new LatLng(lati, lngi);
Run Code Online (Sandbox Code Playgroud)
这引出了一个NoSuchElementException指向String lng = tokens.nextToken();.
在这两种情况下,我正在处理的字符串是GEO,public static final并通过intent从另一个活动传递,目前它只是硬编码的"43.75,-70.15".
LOCATION是public static和是一个初始化为的LatLng变量null.
谁能指出我正确的方向?这看起来很简单,所以我比平时更加困惑......
编辑:
数据源自通过意图传递的不同活动.接收意图的活动GEO定义如下:
public static final String GEO = "geo";
Run Code Online (Sandbox Code Playgroud)
前一个活动的意图将geo放入如下:
bundle.putString(PlaceActivity.GEO, geo);
Run Code Online (Sandbox Code Playgroud)
你应该有
String loc = getIntent().getExtras().getString(PlaceActivity.GEO);
String[] geo = loc.split(",");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9800 次 |
| 最近记录: |