我需要將字符串值轉換爲LatLng值以便在Android應用程序的GoogleMaps片段中使用。字符串值可能會以「-45.654765,65.432892」的形式出現。將字符串轉換爲Double以便在LatLng/Google Maps中使用
我已經嘗試了兩種不同的方式來做到這一點,並且都導致了錯誤。首先,我已經採用分體式(),並把結果放到一個String []試過,然後訪問每個使用parseDouble(),如下所示:
String[] geo = GEO.split(",");
double lati = Double.parseDouble(geo[0]);
double lngi = Double.parseDouble(geo[1]);
LOCATION = new LatLng(lati, lngi);
這產生引起double lati = Double.parseDouble(geo[0]);
一個ArrayIndexOutOfBoundsException
。我不確定爲什麼。
我也使用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);
這將產生一個NoSuchElementException
指向String lng = tokens.nextToken();
。
在這兩種情況下,該字符串我的工作,GEO
,是public static final
並經由意圖另一個活動,它目前只是硬編碼爲"43.75,-70.15"
通過。
LOCATION
是public static
並且是LatLng變量,初始化爲null
。
任何人都可以指向正確的方向嗎?這看起來很簡單,所以我甚至比平時更迷茫......
編輯:
在它通過傳遞意圖不同的活動數據起源。接收意向的活動已GEO
定義如下:
public static final String GEO = "geo";
和以往活動的意圖提出Geo在這樣的:
bundle.putString(PlaceActivity.GEO, geo);
GEO怎麼能是最終的,同時從另一個活動通過意圖傳遞?您的GEO從未設置過任何逗號。你可以在GEO的設置上添加一些代碼嗎? – ddmps 2013-04-25 03:09:58