解析中绑定异常的数组索引
Array index of bound exception in parse
我正在尝试将对象保存在解析云中,但它给了我
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
密码是:
private void parsingTask() {
//po=new ParseObject("LatLng");
ParseQuery<ParseObject> query=ParseQuery.getQuery("LatLng");
query.whereEqualTo("imei_code","357146054169800");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> latlanglist, ParseException e) {
if(e==null){
String firstItemId=latlanglist.get(0).getObjectId();
lat=latlanglist.get(0).getString("latitude");
lang=latlanglist.get(0).getString("longitude");
e1.setText(lat);
e2.setText(lang);
e3.setText(firstItemId);
Toast.makeText(getApplicationContext(),"Found the New Location:\nLatitude:"+lat+
"\nLongitude:"+lang+"\nObjectID:"+firstItemId,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "Error was found\n"+e,Toast.LENGTH_LONG).show();
}
}
});
// TODO Auto-generated method stub
}
logcat 输出:
01-15 14:34:21.064: E/AndroidRuntime(10986): FATAL EXCEPTION: main
01-15 14:34:21.064: E/AndroidRuntime(10986): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.util.ArrayList.get(ArrayList.java:304)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.robotrackerserver.MainActivity.done(MainActivity.java:43)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.FindCallback.internalDone(FindCallback.java:45)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.FindCallback.internalDone(FindCallback.java:31)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.Parse.run(Parse.java:973)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Handler.handleCallback(Handler.java:615)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Handler.dispatchMessage(Handler.java:92)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Looper.loop(Looper.java:137)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.app.ActivityThread.main(ActivityThread.java:4944)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.lang.reflect.Method.invokeNative(Native Method)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.lang.reflect.Method.invoke(Method.java:511)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
01-15 14:34:21.064: E/AndroidRuntime(10986): at dalvik.system.NativeStart.main(Native Method)
01-15 14:34:21.134: D/dalvikvm(10986): GC_CONCURRENT freed 311K, 15% free 7079K/8327K, paused 21ms+4ms, total 118ms
异常意味着返回的列表 List<ParseObject> latlanglist
为空。
您应该检查必须处理的对象的约束,而不是检查异常是否为空。
if(latlanglist != null && !latlanglist.isEmpty()){
}
试试这个
if(e==null&& latlanglist!=null){
if(latlanglist.size()>0){
String firstItemId=latlanglist.get(0).getObjectId();
lat=latlanglist.get(0).getString("latitude");
lang=latlanglist.get(0).getString("longitude");
e1.setText(lat);
e2.setText(lang);
e3.setText(firstItemId);
Toast.makeText(getApplicationContext(),"Found the New Location:\nLatitude:"+lat+
"\nLongitude:"+lang+"\nObjectID:"+firstItemId,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "Error was found\n"+e,Toast.LENGTH_LONG).show();
}
}
}
我正在尝试将对象保存在解析云中,但它给了我
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
密码是:
private void parsingTask() {
//po=new ParseObject("LatLng");
ParseQuery<ParseObject> query=ParseQuery.getQuery("LatLng");
query.whereEqualTo("imei_code","357146054169800");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> latlanglist, ParseException e) {
if(e==null){
String firstItemId=latlanglist.get(0).getObjectId();
lat=latlanglist.get(0).getString("latitude");
lang=latlanglist.get(0).getString("longitude");
e1.setText(lat);
e2.setText(lang);
e3.setText(firstItemId);
Toast.makeText(getApplicationContext(),"Found the New Location:\nLatitude:"+lat+
"\nLongitude:"+lang+"\nObjectID:"+firstItemId,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "Error was found\n"+e,Toast.LENGTH_LONG).show();
}
}
});
// TODO Auto-generated method stub
}
logcat 输出:
01-15 14:34:21.064: E/AndroidRuntime(10986): FATAL EXCEPTION: main
01-15 14:34:21.064: E/AndroidRuntime(10986): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.util.ArrayList.get(ArrayList.java:304)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.robotrackerserver.MainActivity.done(MainActivity.java:43)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.FindCallback.internalDone(FindCallback.java:45)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.FindCallback.internalDone(FindCallback.java:31)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.parse.Parse.run(Parse.java:973)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Handler.handleCallback(Handler.java:615)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Handler.dispatchMessage(Handler.java:92)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.os.Looper.loop(Looper.java:137)
01-15 14:34:21.064: E/AndroidRuntime(10986): at android.app.ActivityThread.main(ActivityThread.java:4944)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.lang.reflect.Method.invokeNative(Native Method)
01-15 14:34:21.064: E/AndroidRuntime(10986): at java.lang.reflect.Method.invoke(Method.java:511)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
01-15 14:34:21.064: E/AndroidRuntime(10986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
01-15 14:34:21.064: E/AndroidRuntime(10986): at dalvik.system.NativeStart.main(Native Method)
01-15 14:34:21.134: D/dalvikvm(10986): GC_CONCURRENT freed 311K, 15% free 7079K/8327K, paused 21ms+4ms, total 118ms
异常意味着返回的列表 List<ParseObject> latlanglist
为空。
您应该检查必须处理的对象的约束,而不是检查异常是否为空。
if(latlanglist != null && !latlanglist.isEmpty()){
}
试试这个
if(e==null&& latlanglist!=null){
if(latlanglist.size()>0){
String firstItemId=latlanglist.get(0).getObjectId();
lat=latlanglist.get(0).getString("latitude");
lang=latlanglist.get(0).getString("longitude");
e1.setText(lat);
e2.setText(lang);
e3.setText(firstItemId);
Toast.makeText(getApplicationContext(),"Found the New Location:\nLatitude:"+lat+
"\nLongitude:"+lang+"\nObjectID:"+firstItemId,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(getApplicationContext(), "Error was found\n"+e,Toast.LENGTH_LONG).show();
}
}
}