我試圖從android手機內的聯繫人列表中加載位置到谷歌地圖。每當用戶點擊按鈕時,它會將所有聯繫人加載到谷歌地圖中,並在每個聯繫人的位置上放置一個標記。加載位置到谷歌地圖 - 谷歌地圖v2
我已經想出瞭如何獲取聯繫人的地址,但我只是循環和放置標記時遇到了問題。
for (int i = 0; i < addresslist.size(); i++) {
String contact = namelist.get(i).toString();
StringTokenizer tokens = new StringTokenizer(contact, ",");
String name = tokens.nextToken();
String street = tokens.nextToken();
String city = tokens.nextToken();
try {
List<Address> a = geoCoder.getFromLocationName(street + ", "
+ city, 1);
double lat = a.get(0).getLatitude();
double lon = a.get(0).getLongitude();
LatLng location = new LatLng(lat, lon);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
mMap.addMarker(new MarkerOptions().position(location).title(name));
// mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location,15));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我有姓名,地址和城市存儲在一個列表中,它將它們分離成單獨的變量。它需要地址和城市,將它們轉換成經度和緯度,然後將標記放置在地圖上。
我在嘗試使其工作時遇到問題。它只是崩潰,給我錯誤,嘗試和捕捉部分本身工作正常,如果我硬編碼的地址英寸我都沒有想法,我花了2-3小時試圖找出原因。我做錯了嗎?還是有更好的解決方案呢?
編輯 - 在這裏,我的logcat的
3月5日至28日:23:19.575:E/AndroidRuntime(8632):致命異常:主要 3月5日至28日:23:19.575:E/AndroidRuntime (8632):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.app1project/com.example.app1project.ContactsMapActivity}:java.util.NoSuchElementException 05-28 03:23:19.575:E/AndroidRuntime 8632):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.ActivityThread.access $ 700(ActivityThread.java:139) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.ActivityThread $ H.handleMessage(ActivityThread .java:1224) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.os.Handler.dispatchMessage(Handler.java:99) 05-28 03:23:19.575:E/AndroidRuntime (8632):at android.os.Looper.loop(Looper.java:137) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.ActivityThread.main(ActivityThread.java:4918 ) 05-28 03:23:19.575:E/AndroidRuntime(8632):at java.lang.reflect.Method.invokeNative(Native Method) 05-28 03:23:19.575:E/AndroidRuntime(8632):at java.lang.reflect.Method.invoke(Method.java:511) 05-28 03:23:19.575:E/AndroidRuntime(8632):at com.android.internal.os.Zygote Init $ MethodAndArgsCaller.run(ZygoteInit.java:1004) 05-28 03:23:19.575:E/AndroidRuntime(8632):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 05 -28 03:23:19.575:E/AndroidRuntime(8632):at dalvik.system.NativeStart.main(Native Method) 05-28 03:23:19.575:E/AndroidRuntime(8632):由java.util .NoSuchElementException 05-28 03:23:19.575:E/AndroidRuntime(8632):在java.util.StringTokenizer.nextToken(StringTokenizer.java:208) 05-28 03:23:19.575:E/AndroidRuntime(8632) :at com.example.app1project.ContactsMapActivity.onCreate(ContactsMapActivity.java:79) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.Activity.performCreate(Activity.java:5048) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.Instrumentation.callActivityOnC reate(Instrumentation.java:1094) 05-28 03:23:19.575:E/AndroidRuntime(8632):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052) 05-28 03:23:19.575: E/AndroidRuntime(8632):... 11更多
你可以發佈它崩潰時的logcat輸出嗎? – chopchop
編輯後 – user1704756
解析聯繫人字符串時發生錯誤。嘗試記錄這些字符串以查看它們的外觀。我敢打賭,其中一個看起來很奇怪或是空的,這就是導致崩潰 – chopchop