Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试在单击导航抽屉中的项目后启动“地图”活动_Java_Android_Google Maps_Arraylist - Fatal编程技术网

Java 尝试在单击导航抽屉中的项目后启动“地图”活动

Java 尝试在单击导航抽屉中的项目后启动“地图”活动,java,android,google-maps,arraylist,Java,Android,Google Maps,Arraylist,最近,我在做一个应用程序,它有一个导航抽屉,我有一些项目,clik它应该打开一个地图活动,但当这样做时,我的应用程序停止并显示以下错误: FATAL EXCEPTION: main Process: jocadoci.soloordena, PID: 2897 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsExcepti

最近,我在做一个应用程序,它有一个导航抽屉,我有一些项目,clik它应该打开一个地图活动,但当这样做时,我的应用程序停止并显示以下错误:

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);

}
private void geologe()引发IOException{
字符串位置=“comida rapida y pizza”;
地理编码器gc=新地理编码器(本);
List List=newarraylist(gc.getFromLocationName(location,1));
地址=list.get(0);
String locality=address.getLocality();
Toast.makeText(this,locality,Toast.LENGTH_SHORT).show();
双lat=地址。getLatitude();
double lng=address.getLongitude();
goToLocationZoom(拉丁美洲,液化天然气,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();
    }
}
private void geologe()引发IOException{
字符串位置=“comida rapida y pizza”;
地理编码器gc=新地理编码器(本);
List List=newarraylist(gc.getFromLocationName(location,1));
if(list!=null&&list.size()>0){
地址=list.get(0);
String locality=address.getLocality();
Toast.makeText(this,locality,Toast.LENGTH_SHORT).show();
双lat=地址。getLatitude();
double lng=address.getLongitude();
goToLocationZoom(拉丁美洲,液化天然气,16);
}否则{
Toast.makeText(这是“未找到结果”,Toast.LENGTH_SHORT).show();
}
}

谢谢,伙计,这有助于查看我的地图活动。你知道如何像谷歌地图那样显示位置吗?