我已经阅读了有关IOExceptions的所有文档,以及它们产生时的含义。我知道我正在我不存在的ArrayList中搜索en索引,因此产生了IndexOutOfBoundsException: Index: 0, Size: 0
。我已查阅以下文档和帖子以尝试自行解决此问题,但未成功。经过深入研究后,我希望有人可以帮助我解决这个问题。我已经合法地浏览了许多类似类型问题的帖子,独自尝试解决我的错误,但未能得出正确的结论。
What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?。https://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html
例如,我尝试在if
周围放置addressList
语句,并显示toast
消息,警告用户他们必须优化搜索。在地图上搜索大多数地点时,结果很好,并且在该特定位置的地图上放置了一个标记。但是,当我搜索Paris时,我得到了例外,就像我说的那样,我将其包装在if
语句和其他方法中,但没有成功。
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { String location = searchView.getQuery().toString(); List<Address> addressList = null; if (location != null || !location.equals("")) { Geocoder geocoder = new Geocoder(MapsActivityPublisher.this); try { addressList = geocoder.getFromLocationName(location, 1); } catch (IOException e) { e.printStackTrace(); } Address address = addressList.get(0); LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude()); map.addMarker(new MarkerOptions().position(latLng).title(location).draggable(true)); map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10)); } return false; } @Override public boolean onQueryTextChange(String newText) { return false; } });
Logcat
java.lang.IndexOutOfBoundsException:索引:0,大小:0在java.util.ArrayList.get(ArrayList.java:437)在com.e.events.Map.MapsActivityPublisher $ 1.onQueryTextSubmit(MapsActivityPublisher.java:62)在android.widget.SearchView.onSubmitQuery(SearchView.java:1270)在android.widget.SearchView.access $ 1000(SearchView.java:99)在android.widget.SearchView $ 7.onEditorAction(SearchView.java:1247)在android.widget.TextView.onEditorAction(TextView.java:6453)在com.android.internal.widget.EditableInputConnection.performEditorAction(EditableInputConnection.java:138)在com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:363)在com.android.internal.view.IInputConnectionWrapper $ MyHandler.handleMessage(IInputConnectionWrapper.java:85)在android.os.Handler.dispatchMessage(Handler.java:112)在android.os.Looper.loop(Looper.java:216)在android.app.ActivityThread.main(ActivityThread.java:7625)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:524)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
我已经阅读了有关IOExceptions的所有文档,以及它们产生时的含义。我知道我正在我不存在的ArrayList中搜索en索引,因此产生...
从null
获取数据之前检查empty
和ArrayList