[英]Trying to initiate a Maps Activity after clicking a item in a Navigation Drawer
最近我正在做一個帶有導航抽屜的應用程序,我有一些項目可以點擊它應該打開一個地圖活動,但是這樣做時我的應用程序停止並顯示以下錯誤:
FATAL EXCEPTION: main
Process: jocadoci.soloordena, PID: 2897
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at jocadoci.soloordena.MapsItaly.geoLocate(MapsItaly.java:99)
at jocadoci.soloordena.MapsItaly.onMapReady(MapsItaly.java:73)
at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380)
at wl.a(:com.google.android.gms.DynamiteModulesB:82)
at maps.ad.t$5.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
我認為該錯誤是因為在地圖活動中我有以下使用由 android studio 創建的 ArrayList.java 的類。
private void geoLocate() throws IOException {
String location = "comida rapida y pizza";
Geocoder gc = new Geocoder(this);
List<Address> list = new ArrayList<>(gc.getFromLocationName(location, 1));
Address address = list.get(0);
String locality = address.getLocality();
Toast.makeText(this, locality, Toast.LENGTH_SHORT).show();
double lat = address.getLatitude();
double lng = address.getLongitude();
goToLocationZoom(lat, lng, 16);
}
但我不確定錯誤是什么。 我感謝任何幫助並提前致謝:)
如果未找到匹配項或沒有可用的后端服務( 文檔),則Geocoder.getFromLocationName
將返回 null 或空列表。
因此,要解決您的問題,您必須檢查是否有可用結果:
private void geoLocate() throws IOException {
String location = "comida rapida y pizza";
Geocoder gc = new Geocoder(this);
List<Address> list = new ArrayList<>(gc.getFromLocationName(location, 1));
if (list != null && list.size() > 0) {
Address address = list.get(0);
String locality = address.getLocality();
Toast.makeText(this, locality, Toast.LENGTH_SHORT).show();
double lat = address.getLatitude();
double lng = address.getLongitude();
goToLocationZoom(lat, lng, 16);
} else {
Toast.makeText(this, "No results found", Toast.LENGTH_SHORT).show();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.